FreeBSD 14
Sponsored Link

Apache httpd : SSL/TLS の設定2024/01/30

 

SSL/TLS の設定を有効化して、HTTPS による暗号化通信ができるように設定します。

[1]

SSL 証明書を取得しておきます

[2] SSL/TLS の設定を有効化します。
root@www:~ #
vi /usr/local/etc/apache24/httpd.conf
# 92行目 : コメント解除

LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
# 148行目 : コメント解除

LoadModule ssl_module libexec/apache24/mod_ssl.so
# 526行目 : コメント解除

Include etc/apache24/extra/httpd-ssl.conf
root@www:~ #
vi /usr/local/etc/apache24/extra/httpd-ssl.conf
# 125, 126行目 : サーバー名指定と管理者メール変更

DocumentRoot "/usr/local/www/apache24/data"
ServerName
www.srv.world:443

ServerAdmin
root@srv.world

ErrorLog "/var/log/httpd-error.log"
TransferLog "/var/log/httpd-access.log"
# 144行目 : 取得した証明書に変更

SSLCertificateFile
"/usr/local/etc/letsencrypt/live/www.srv.world/cert.pem"
# 154行目 : 取得した証明書に変更

SSLCertificateKeyFile
"/usr/local/etc/letsencrypt/live/www.srv.world/privkey.pem"
# 165行目 : コメント解除して取得した証明書に変更

SSLCertificateChainFile
"/usr/local/etc/letsencrypt/live/www.srv.world/chain.pem"
root@www:~ #
service apache24 reload

[3] HTTP 通信を HTTPS へリダイレクトして Always on SSL/TLS とする場合は、それぞれのサイト設定に RewriteRule を記述します。
例えば、こちらの例のように設定したバーチャルホスト設定では、以下のように記述します。
[httpd.conf] (include 含む) に設定しない場合は、各ドキュメントルートの直下に [.htaccess] を配置して設定します。
root@www:~ #
vi /usr/local/etc/apache24/httpd.conf
# 181行目 : コメント解除

LoadModule rewrite_module libexec/apache24/mod_rewrite.so
root@www:~ #
vi /usr/local/etc/apache24/Includes/vhost.conf
<VirtualHost *:80>
    DocumentRoot /usr/local/www/apache24/data
    ServerName www.srv.world
    # RewriteRule 追記
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

root@www:~ #
service apache24 reload

[4] クライアントコンピューターから Web ブラウザーでテストページに HTTPS でアクセスして、正常にページが表示されれば OK です。
関連コンテンツ