CentOS Stream 8
Sponsored Link

Apache httpd : SSL/TLS の設定2021/03/15

 
SSL/TLS の設定を有効化して、HTTPS による暗号化通信ができるように設定します。
[1]
SSL 証明書を取得しておきます。
当例では Let's enctypt で取得した証明書を使用します
[2] SSL/TLS の設定を有効化します。
[root@www ~]#
dnf -y install mod_ssl
[root@www ~]#
vi /etc/httpd/conf.d/ssl.conf
# 43行目:コメント解除

DocumentRoot "/var/www/html"
# 44行目:コメント解除しサーバー名指定

ServerName
www.srv.world:443
# 85行目:取得した証明書を指定

SSLCertificateFile
/etc/letsencrypt/live/www.srv.world/cert.pem
# 93行目:取得した鍵ファイルを指定

SSLCertificateKeyFile
/etc/letsencrypt/live/www.srv.world/privkey.pem
# 102行目:取得した中間証明書を指定

SSLCertificateChainFile
/etc/letsencrypt/live/www.srv.world/chain.pem
[root@www ~]#
systemctl restart httpd

[3] HTTP 通信を HTTPS へリダイレクトして Always on SSL/TLS とする場合は、それぞれのサイト設定に RewriteRule を記述します。
例えば、こちらの例のように設定したバーチャルホスト設定では、以下のように記述します。
[httpd.conf] (include 含む) に設定しない場合は、各ドキュメントルートの直下に [.htaccess] を配置して設定します。
[root@www ~]#
vi /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName www.srv.world
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

[root@www ~]#
systemctl restart httpd

[4] Firewalld を有効にしている場合は、HTTPS サービスの許可が必要です。HTTPS は [443/TCP] を使用します。
[root@www ~]#
firewall-cmd --add-service=https --permanent

success
[root@www ~]#
firewall-cmd --reload

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