openSUSE Leap 16

Apache httpd : SSL/TLS の設定2025/11/13

 

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

[1]

SSL 証明書を取得しておきます。
当例では Let's enctypt で取得した証明書を使用します

[2] SSL/TLS の設定を有効化します。
www:~ #
vi /etc/apache2/listen.conf
# 17行目 : コメント解除

Listen 443
# 例として デフォルトサイトを SSL 有効にする

www:~ #
vi /etc/apache2/vhosts.d/vhost-ssl.conf
<VirtualHost *:443>
    DocumentRoot "/srv/www/htdocs"
    ServerName www.srv.world
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/www.srv.world/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.srv.world/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/www.srv.world/chain.pem
    ErrorLog /var/log/apache2/error_log
    TransferLog /var/log/apache2/access_log
    CustomLog /var/log/apache2/ssl_request_log ssl_combined
</VirtualHost>

www:~ #
systemctl restart apache2
[3] HTTP 通信を HTTPS へリダイレクトして Always on SSL/TLS とする場合は、それぞれのサイト設定に RewriteRule を記述します。
例えば、こちらの例のように設定したバーチャルホスト設定では、以下のように記述します。
[httpd.conf] (include 含む) に設定しない場合は、各ドキュメントルートの直下に [.htaccess] を配置して設定します。
www:~ #
vi /etc/apache2/vhosts.d/vhost.conf
LoadModule rewrite_module /usr/lib64/apache2/mod_rewrite.so
<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>

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

success
www:~ #
firewall-cmd --runtime-to-permanent

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