Установка сертификатов от Lets Encrypt в FreeBSD+Apache24

Начнем с того что что Apache24 у вас уже установлен и настроен. Если это не так посмотрите статью FreeBSD+Apache24+Drupal8.
Перед тем как переходить к самой настройке веб сервера и получения ssl сертификата, нам нужно установить certbot

# pkg install py27-certbot
или
# cd /usr/ports/security/py-certbot && make install clean
# cd /usr/ports/security/py-certbot-apache && make install clean

Затем стопарнем Apache24 что бы настроить для коректной работы ssl сертификатов от Lets Encrypt
# /usr/local/etc/rc.d/apache24 stop

Установим OpenSSL
# /usr/ports/security/openssl

Раскомментируем или просто добавим такие строчки в конфигурационном файле Apache24
# ee /usr/local/etc/apache24/httpd.conf

LoadModule log_config_module libexec/apache24/mod_log_config.so
LoadModule setenvif_module libexec/apache24/mod_setenvif.so
LoadModule ssl_module libexec/apache24/mod_ssl.so
LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
Include etc/apache24/extra/httpd-ssl.conf

И редактируем конфигурационный файл до такого состояния
# ee /usr/local/etc/apache24/extra/httpd-ssl.conf

Listen 443
SSLCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA
SSLProxyCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA
SSLHonorCipherOrder on
#TLS 1.2 Only
SSLProtocol TLSv1.2
SSLProxyProtocol TLSv1.2
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:/var/run/ssl_scache(512000)"
SSLSessionCacheTimeout  300

Приступаем к созданию самоподписанного сертификата SSL / TLS. Это можно сделать с помощью команды openssl.
#openssl req -x509 -newkey rsa:2048 -keyout /usr/local/etc/apache24/server.key -out /usr/local/etc/apache24/server.crt -days 3650 #с паролем
тогда при старте Apache24 будет запрошен пароль
Enter PEM pass phrase:
Или создадим сертификат без пароля.
#openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/etc/apache24/server.key -out /usr/local/etc/apache24/server.crt -days 3650

 

Теперь можно и стартануть Apache24
# /usr/local/etc/rc.d/apache24 start
И получим ssl сертификат на примере моего сайта.

# certbot certonly --webroot -w /usr/local/www/apache24/data/ussrkievua -d ussr.kiev.ua -d www.ussr.kiev.ua -m ussr@ussr.kiev.ua

# cd /usr/ports/security/py-certbot-apache
# make install clean
# certbot --apache -d server.olymp-travel.kiev.ua

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for ussr.kiev.ua
http-01 challenge for www.ussr.kiev.ua
Using the webroot path /usr/local/www/apache24/data/ussrkievua for all unmatched domains.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /usr/local/etc/letsencrypt/live/ussr.kiev.ua/fullchain.pem
   Your key file has been saved at:
   /usr/local/etc/letsencrypt/live/ussr.kiev.ua/privkey.pem
   Your cert will expire on 2019-02-25. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Вот последний штрих добавим виртуал хост, и укажем где лежат ssl сертификаты  
# ee /usr/local/etc/apache24/extra/httpd-ssl.conf
 

<VirtualHost *:443>
    ServerName ussr.kiev.ua:443
    ServerAlias www.ussr.kiev.ua
    DocumentRoot "/usr/local/www/apache24/data/ussrkievua"
ServerAdmin ussr@ussr.kiev.ua
SSLEngine on
SSLCertificateFile "/usr/local/etc/letsencrypt/live/ussr.kiev.ua/fullchain.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/ussr.kiev.ua/privkey.pem"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/www/apache24/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
        BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
        CustomLog "/usr/local/www/apache24/data/ussrkievua/logs/ussrkievua-ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        <Directory "/usr/local/www/apache24/data/">
        Options Indexes FollowSymLinks MultiViews
        #AllowOverride controls what directives may be placed in .htaccess files.
        AllowOverride All
        #Controls who can get stuff from this server file
        Require all granted
       </Directory>
      ErrorLog "/usr/local/www/apache24/data/ussrkievua/logs/ussrkievua.ssl-error.log"
    CustomLog "/usr/local/www/apache24/data/ussrkievua/logs/ussrkievua.ssl-access_log" combined
</VirtualHost>

Ребутнем Apache24
# /usr/local/etc/rc.d/apache24 restart
Пробуем зайти через https://ussr.kiev.ua  

 

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.