Apache HTTP Server
Apache への SSL/TLS 証明書インストール
Apache 2.4 系の mod_ssl を使った SSL/TLS 証明書のインストール手順。2026年版の推奨設定(TLS 1.3 / HTTP/2 / HSTS)も含めて解説します。
🛠️ 事前準備
- SSL ストアから取得した サーバ証明書(
example.com.crt) - CSR 作成時の 秘密鍵(
example.com.key) - 中間 CA 証明書(認証局から提供)
- Apache 2.4 系がインストール済み、
mod_sslが有効化済み
⚠️ 中間 CA 証明書のインストール漏れに注意
中間 CA 証明書がインストールされていないと、一部のブラウザ・モバイル端末で警告が表示されます。
📋 手順
-
証明書ファイルの配置
$ sudo mkdir -p /etc/httpd/ssl $ sudo cp example.com.crt /etc/httpd/ssl/ $ sudo cp example.com.key /etc/httpd/ssl/ $ sudo cp intermediate.crt /etc/httpd/ssl/ $ sudo chmod 644 /etc/httpd/ssl/example.com.crt $ sudo chmod 600 /etc/httpd/ssl/example.com.key $ sudo chmod 644 /etc/httpd/ssl/intermediate.crt -
Apache 設定ファイルの編集
/etc/httpd/conf.d/ssl.conf(2026年推奨設定)<VirtualHost *:443> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/httpd/ssl/example.com.crt SSLCertificateKeyFile /etc/httpd/ssl/example.com.key SSLCertificateChainFile /etc/httpd/ssl/intermediate.crt SSLProtocol -all +TLSv1.2 +TLSv1.3 SSLCipherSuite HIGH:!aNULL:!MD5:!3DES SSLHonorCipherOrder off Protocols h2 http/1.1 Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "SAMEORIGIN" </VirtualHost> <VirtualHost *:80> ServerName example.com Redirect permanent / https://example.com/ </VirtualHost> -
設定ファイルの構文チェック
$ sudo apachectl configtest Syntax OK -
Apache の再起動
$ sudo systemctl restart httpd -
動作確認
$ openssl s_client -connect example.com:443 -servername example.com < /dev/null✅ SSL Labs でテスト SSL Labs SSL Test で A 評価以上を目指しましょう。
❓ よくあるご質問
Q. ブラウザに「保護されていません」と表示されます
主な原因:中間CA証明書のインストール漏れ、コモンネーム不一致、混在コンテンツ。詳しくは トラブルシューティング をご参照ください。
Q. HTTP/2 を有効化したい
Apache 2.4.17 以降で mod_http2 を有効化し、Protocols h2 http/1.1 を設定。HTTPS でのみ動作。
Q. 47日ルール時代の運用が大変です
ACME 自動更新の導入を強く推奨。certbot 使い方 をご参照ください。