ApacheでSSL証明書をインストールする手順をまとめました。
下記資料を参考にしました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
1)/etc/httpd/conf.d/ssl.confに設定追加
下記設定をします。
Listen 443 SSLRandomSeed startup file:/dev/urandom 1024 SSLRandomSeed connect file:/dev/urandom 1024 <VirtualHost site-on-certificate.com:443> SSLEngine On SSLCertificateFile /etc/pki/tls/http/servercert.pem SSLCertificateKeyFile /etc/pki/tls/http/serverkey.pem SSLProtocol All -SSLv2 SSLCipherSuite HIGH:MEDIUM:!aNULL:+MD5 </VirtualHost>
●設定内容の説明
①SSLRandomSeed
擬似乱数生成器のシードとなるソースを設定
SSLRandomSeed context source [bytes]
context
“startup” OpenSSLの開始時
“connect” 新しいSSL接続確立時
②証明書ファイルと秘密鍵ファイルを指定
SSLCertificateFile /etc/pki/tls/http/servercert.pem
SSLCertificateKeyFile /etc/pki/tls/http/serverkey.pem
③使用するSSLプロトコルを指定
SSLProtocol All -SSLv2
SSLv2以外のすべて(SSLv3,TLSv1,TLSv1.1,TLSv1.2)を設定
④SSLハンドシェーク中のネゴシエーションに利用できる暗号を指定
SSLCipherSuite HIGH:MEDIUM:!aNULL:+MD5
HIGH:all ciphers using Triple-DES
MEDIUM:all ciphers with 128 bit encryption
!aNULL:aNULL(No authentication)はリストから外す
+MD5:MD5をこの順番に変更
2)/etc/httpd/conf/httpd.confに設定追加
SSLで保護するコンテンツがあるディレクトリに対する設定を追加します。
<Directory /var/www/html/secure> SSLRequireSSL SSLOptions +StrictRequire SSLRequire %{HTTP HOST} eq "site-on-certificate.com" # ErrorDocument 403 https://site-on-certificate.com </Directory>
●設定内容の説明
①SSLRequireSSL
SSLを使用していないHTTPリクエストは拒否する。
②SSLOptions +StrictRequire
・StrictRequire
“SSLRequire”または”SSLRequireSSL”でアクセス禁止が決定されれば、SatisfyがAnyでも強制的にアクセスを禁止する
③403エラー発生時の挙動
403エラーを返さずに自サーバーなどにリダイレクトする場合は設定する
# ErrorDocument 403 https://site-on-certificate.com
-
インストール、設定全般、運用
- Apacheのインストール
- Apache初期設定確認
- Apacheの静的、DSOモジュールの確認、インストール方法
- Apacheでconf.dディレクトリ内の設定ファイルのインクルードに注意
- Apacheのhttpdサービスの使用方法
- WordPressパーマリンク設定時のApache設定
- Apache mod_rewriteの仕組み、設定方法、動作確認
- Apacheで特定の拡張子を含むリクエストをログ対象から外す
- CentOS Stream9でApache、PHPを設定する際の注意点
- ApacheのTraceメソッドを無効にする
- ヘッダーにApacheバージョンが表示されないようにする
- PHPのバージョン情報とApacheの設定
- Apacheでディレクトリ内一覧表示を無効にする
- Apacheで不要なモジュールはロードしない
- Apacheで不要なモジュールはロードしない(1)ベーシック認証と認証プロバイダ
- Apacheで不要なモジュールはロードしない(2)ダイジェスト認証
- Apacheで不要なモジュールはロードしない(3)mod_rewrite、LDAP、WebDAV
- Apacheで不要なモジュールはロードしない(4)Server Side Includes
- Apacheで不要なモジュールはロードしない(5)mod_mime_magic
- Apacheで不要なモジュールはロードしない(6)mod_info、mod_status
- Apacheで不要なモジュールはロードしない(7)mod_speling、mod_userdir
- Apacheで不要なモジュールはロードしない(8)プロキシ関連のモジュール
- Apacheで不要なモジュールはロードしない(9)キャッシュ関連のモジュール
- Apacheで不要なモジュールはロードしない(10)CGI関連のモジュール
- Apacheで不要なモジュールはロードしない(11)フィルター、expires、圧縮のモジュール
- Apacheでディレクトリへのアクセスを制限する設定方法
- Apacheベーシック認証の設定手順とセキュリティ上の注意
- Apacheで使用できるHTTPメソッドを制限する
- FIPS140-2とApacheのmod_nss
- Apacheにおける自己証明書作成手順
- ApacheにおけるSSL証明書インストール手順
- DoS攻撃からWebサーバーを保護するApacheモジュール
- Apacheに関するLinux側のセキュリティ設定(パーミッション、iptables、chroot)
- Modsecurityの概要と特徴
- Modsecurityのインストール方法
- modsecurityの設定方法と設定例
- Apacheのパフォーマンスに影響を与えるOS、ハードウェアの要素、注意点
- ApacheのMPMの概要とチューニング
- ApacheのMaxClientsのチューニングとListenBacklog
- HostnameLookupsを有効にして名前解決を行う場合のApacheパフォーマンスに与える影響
- FollowSymLinks、SymLinksIfOwnerMatchの設定とApacheのパフォーマンス
- AllowOverrideの設定とApacheのパフォーマンス
- コンテントネゴシエーションの設定とApacheのパフォーマンス
- Apacheのプロセス生成とパフォーマンスに与える影響
セキュリティ
パフォーマンス