19
31

More than 5 years have passed since last update.

Apache 2.4にmod_sslを設定する

Last updated at Posted at 2017-11-02

はじめに

昨今ウェブサイトのHTTPS化が必須になってきたので、Apacheサーバにmod_sslをインストールする手順をまとめました。

以下の方針で設定しています。

  • TLSv1.1以上を強制
  • 割と強い暗号スイートのみを使用

更新履歴

2018.6.19 セキュリティ基準を強化

前回までの記事はこちら

Apacheのインストール手順などは以下の関連記事をお読みください。

インストール手順

作業方針

前回までと同様にyumを使ってインストールします。

mod_sslインストール

以下のコマンドでApache向けmod_sslモジュールをインストールします。

yum -y install mod_ssl

mod_ssl設定

SSL設定は以下のように行います。
強度が弱すぎるプロトコルや暗号方式のみブロックしています。

/etc/httpd/conf.d/ssl.conf
Listen 443 https
Mutex default ssl-cache
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!DSS
SSLCompression off
SSLCryptoDevice builtin
SSLHonorCipherOrder on
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLProtocol -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout  300
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache shmcb:/var/run/ocsp(128000)
SSLStrictSNIVHostCheck off
SSLUseStapling on

<VirtualHost *:443>
    ServerName ドメイン名
    ServerAdmin 管理者のメールアドレス
    DocumentRoot ドキュメントルートパス
    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn
    SSLEngine on
    SSLCertificateKeyFile 秘密鍵ファイル(KEY)のパス
    SSLCertificateFile サーバ証明書ファイル(CRT)のパス
    SSLCertificateChainFile 中間証明書ファイルのパス(※中間証明書が不要な場合は行削除)
    BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

HTTP→HTTPS転送設定

以下の設定で、mod_rewriteモジュールを使って全てのHTTPアクセスをHTTPSに転送します。
(※httpdパッケージに同梱されており、yumで追加インストールは必要ありません)
必要に応じて設定してください。

/etc/httpd/conf.d/rewrite.conf
<IfModule rewrite_module>
    RewriteEngine On
    LogLevel alert rewrite:trace3
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
19
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
31