2026-07-10

Установка приложения Let's Encrypt (py311-certbot)

Установить можно либо из портов

bsd$ cd /usr/ports/security/py-certbot && sudo make install clean

Либо из пакетов

bsd$ sudo pkg install -y py311-certbot

По окончании установки появится подсказка, как запланировать еженедельную проверку необходимости продления срока действия сертификата

bsd$ echo 'weekly_certbot_enable="YES"' | sudo tee -a /etc/periodic.conf

Установка ключей

bsd$ sudo certbot certonly --standalone

Они будут доступны в директории соответствующего доменного имени

bsd$ sudo ls -l /usr/local/etc/letsencrypt/live/stecs.ru/

lrwxr-xr-x 1 root wheel 32 Jul 8 12:18 cert.pem -> ../../archive/stecs.ru/cert1.pem

lrwxr-xr-x 1 root wheel 33 Jul 8 12:18 chain.pem -> ../../archive/stecs.ru/chain1.pem

lrwxr-xr-x 1 root wheel 37 Jul 8 12:18 fullchain.pem -> ../../archive/stecs.ru/fullchain1.pem

lrwxr-xr-x 1 root wheel 35 Jul 8 12:18 privkey.pem -> ../../archive/stecs.ru/privkey1.pem

https://certbot.eff.org/instructions?ws=other&os=freebsd

Настройка HTTP-сервера apache24

Внести соответствующие изменения в конфигурационный файл httpd.conf

bsd$ cat module /usr/local/etc/apache24/httpd.conf

LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so

LoadModule ssl_module libexec/apache24/mod_ssl.so

LoadModule rewrite_module libexec/apache24/mod_rewrite.so

....

Include etc/apache24/extra/httpd-ssl.conf

Include etc/apache24/extra/httpd-vhosts.conf

....

# <IfModule ssl_module>

#

#

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

# </IfModule>

Удалить записи всех виртуальных хостов в файле /usr/local/etc/apache24/extra/httpd-ssl.conf и указать свои в /usr/local/etc/apache24/extra/httpd-vhosts.conf

bsd$ cat /usr/local/etc/apache24/extra/httpd-vhosts.conf

<VirtualHost *:443>

DocumentRoot "/usr/local/www/apache24/data"

ServerName apache24

ErrorLog "/var/log/apache24-error_log"

CustomLog "/var/log/apache24-access_log" common

SSLEngine on

SSLCertificateFile /usr/local/etc/letsencrypt/live/stecs.ru/cert.pem

SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/stecs.ru/privkey.pem

SSLCertificateChainFile /usr/local/etc/letsencrypt/live/stecs.ru/chain.pem

</VirtualHost>

<VirtualHost *:80>

ServerName apache24

RewriteEngine on

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

</VirtualHost>


HTTP-сервер должен быть скомпилирован с поддержкой SSL (HTTP2=on, SSL=on)


Выяснить, поддерживает ли сервер ssl, можно, подключившись через telnet на порт HTTP

bsd$ telnet localhost 80

bsd$ HEAD

HTTP/1.1 400 Bad Request

Server: Apache/2.4.68 (FreeBSD) OpenSSL/3.0.15 PHP/8.2.31

Либо запросить у HTTP-сервера данные сертификатов

bsd$ openssl s_client -connect stecs.ru:443 -servername stecs.ru -showcerts


https://www.dmosk.ru/miniinstruktions.php?mini=apache-ssl