Различия
Показаны различия между двумя версиями страницы.
| linux:apache:mod_md [2023/07/30 18:19] – создано dx | linux:apache:mod_md [2023/07/30 18:25] (текущий) – dx | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== mod_md: сертификаты Let's Encrypt | ||
| + | ---- | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Получаем сертификат Let's Encrypt за 5 минут с помощью модуля **mod_md**. | ||
| + | |||
| + | Исходные данные | ||
| + | * Debian 12 | ||
| + | * Apache 2.4.57-2 | ||
| + | * Домен pupupu.site | ||
| + | |||
| + | Документация | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | ===== Настройка mod_md ===== | ||
| + | |||
| + | Включаем модули | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | Минимальный конфиг | ||
| + | * MDCertificateAgreement accepted - принять условия LE | ||
| + | * MDContactEmail - контактный email, иначе будет использоваться из ServerAdmin | ||
| + | * MDomain foobar.com www.foobar.com - для каких доменов выпустить сертификат | ||
| + | |||
| + | Пример виртуального хоста Apache | ||
| + | |||
| + | <code bash> | ||
| + | # mod_md | ||
| + | MDCertificateAgreement accepted | ||
| + | MDContactEmail [email protected] | ||
| + | MDomain pupupu.site www.pupupu.site | ||
| + | MDomain mail.pupupu.site admin.pupupu.site | ||
| + | |||
| + | MDStapling on | ||
| + | |||
| + | # md-status | ||
| + | < | ||
| + | SetHandler md-status | ||
| + | Require ip 127.0.0.1 172.16.10.0/ | ||
| + | </ | ||
| + | |||
| + | # server-status | ||
| + | < | ||
| + | SetHandler server-status | ||
| + | Require ip 127.0.0.1 172.16.10.0/ | ||
| + | </ | ||
| + | |||
| + | # https:// | ||
| + | #< | ||
| + | # SetHandler certificate-status | ||
| + | # Require ip 127.0.0.1 172.16.10.0/ | ||
| + | #</ | ||
| + | |||
| + | # http 301 redirect | ||
| + | < | ||
| + | ServerName pupupu.site | ||
| + | ServerAlias www.pupupu.site | ||
| + | Redirect 301 / https:// | ||
| + | </ | ||
| + | |||
| + | # https | ||
| + | < | ||
| + | Protocols h2 http/1.1 acme-tls/1 | ||
| + | DocumentRoot / | ||
| + | ServerAdmin [email protected] | ||
| + | ServerName pupupu.site | ||
| + | ServerAlias www.pupupu.site | ||
| + | |||
| + | CustomLog "/ | ||
| + | ErrorLog | ||
| + | |||
| + | # php-fpm handler | ||
| + | < | ||
| + | SetHandler " | ||
| + | </ | ||
| + | |||
| + | SSLEngine on | ||
| + | SSLProtocol | ||
| + | SSLCipherSuite | ||
| + | SSLHonorCipherOrder | ||
| + | SSLSessionTickets | ||
| + | | ||
| + | # OCSP managed by mod_md, so turning off | ||
| + | # | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # rewrite www2non-www | ||
| + | RewriteEngine On | ||
| + | RewriteCond %{HTTP_HOST} ^www.pupupu.site [NC] | ||
| + | RewriteRule ^(.*)$ https:// | ||
| + | |||
| + | Options -Indexes +FollowSymLinks | ||
| + | AllowOverride All | ||
| + | Require all granted | ||
| + | </ | ||
| + | |||
| + | # mail vhost | ||
| + | < | ||
| + | Protocols h2 http/1.1 acme-tls/1 | ||
| + | SSLEngine on | ||
| + | DocumentRoot / | ||
| + | ServerAdmin [email protected] | ||
| + | ServerName mail.pupupu.site | ||
| + | |||
| + | < | ||
| + | Options -Indexes +FollowSymLinks | ||
| + | AllowOverride All | ||
| + | Require all granted | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | # admin vhost | ||
| + | < | ||
| + | Protocols h2 http/1.1 acme-tls/1 | ||
| + | SSLEngine on | ||
| + | DocumentRoot / | ||
| + | ServerAdmin [email protected] | ||
| + | ServerName admin.pupupu.site | ||
| + | |||
| + | < | ||
| + | Options -Indexes +FollowSymLinks | ||
| + | AllowOverride All | ||
| + | Require all granted | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Перезапускаем Apache | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | ===== Проверка md-status ===== | ||
| + | |||
| + | По адресу https:// | ||
| + | |||
| + | pupupu.site, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | mail.pupupu.site, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== OCSP ===== | ||
| + | |||
| + | Что такое OCSP stapling | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | Как включить - [[https:// | ||
| + | |||
| + | Информацию о OCSP можно посмотреть через [[https:// | ||
| + | |||
| + | Пример | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Для OCSP можно использовать и mod_ssl и mod_md. | ||
| + | |||
| + | ===== Нюансы ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Для wildcard можно использовать только [[https:// | ||
| + | |||
| + | Если например недоступен 80 порт извне, то может быть подобная ошибка | ||
| + | |||
| + | <code bash> | ||
| + | Error[Internal error (specific information not available)]: | ||
| + | </ | ||
| + | |||
| + | Если доступен только 443 порт, то в Protocols добавляем **acme-tls/ | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | EOM | ||
| + | |||
| + | {{tag> | ||