Apache の SSL 接続 (https) の有効化

カテゴリ:Webサーバ

Ubuntu 対応

SSL 接続の有効化

以下のコマンドを実行します。

# a2enmod ssl
# a2ensite default-ssl
# systemctl restart apache2

注意但し、VirtualHost で構成しているサイトは https 化されません。default-ssl.conf の有効化ではなく、VirtualHost 側で手動で https 化の設定を行ってください。

初期設定では Apache が持っている自己署名証明書が設定されています。

# cat /etc/apache2/sites-enabled/default-ssl.conf | grep SSLCertificateFile
                #   SSLCertificateFile directive is needed.
                SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
                #   the referenced file can be the same as SSLCertificateFile
# cat /etc/apache2/sites-enabled/default-ssl.conf | grep SSLCertificateKeyFile
                SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
# cat /etc/apache2/sites-enabled/default-ssl.conf | grep SSLCACertificateFile
                #SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt

Apache の再起動

# systemctl restart apache2

HTTPS へのリダイレクト

http プロトコルへのアクセスを https プロトコルにリダイレクトする場合は、/etc/apache2/apache2.conf に以下を追記します。

<ifModule mod_rewrite.c>
    # Redirect HTTP to HTTPS
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
</ifModule>

Apache の再起動

# systemctl restart apache2

認証局での署名済み SSL 証明書の指定

/etc/apache2/sites-enabled/default-ssl.conf の SSLCertificateFile にサーバー証明書(公開鍵含む)、SSLCertificateKeyFile に秘密鍵、SSLCACertificateFile にCA証明書のパスを指定します。

SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/example.com/chain.pem

参考上記パスは Let's Encrypt の場合です。

公開日時:2024年03月24日 19:43:04
最終更新日時:2024年03月25日 00:28:45

なお、VPS選びで迷ったらこちらの記事で主要VPSのメモリ容量ごとの月額、年額料金を比較していますので、是非参考にしてみてください。

Webサーバに戻る

このページのトップに戻る