kilin> how to> SSL

Linux SSL(https)

(2008.12.5, 2013.1.2, 2014.11.13)

apacheでSSL(Secure Socket Layer),暗号化通信をおこなう.
(環境) CentOS 5.2-5.8, CentOS 6.x

(以下プロンプトが#ならroot,$なら普通のユーザー)

mod_sslインストール
# yum install mod_ssl
秘密鍵作成(pass phraseはすぐに削除するので何でもよい)
# cd /etc/pki/tls/certs/
# make server.key

...

Enter pass phrase:
Verifying - Enter pass phrase:

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:
writing RSA key
証明書作成(ホスト名は正確に入れること)
# make server.crt

...

Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Kanagawa
Locality Name (eg, city) [Newbury]:Sagamihara
Organization Name (eg, company) [My Company Ltd]:Kitasato University
Organizational Unit Name (eg, section) []:College of Liberal Arts and Sciences
Common Name (eg, your name or your server's hostname) []:ホスト名(xx.kitasato-u.ac.jpまたは10.1.0.0など)
Email Address []:管理者のメールアドレス
秘密鍵と証明書の設定
# cd /etc/httpd/conf.d/
# cp ssl.conf ssl.conf.org

# vi ssl.conf

SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt ←(SSL証明書を購入して)中間証明書がある場合

#  General setup for the virtual host, inherited from global configuration
#DocumentRoot "/var/www/html"
DocumentRoot "/var/www/html"
ポート443番(https)をOPEN
rootでGUIログインして,[システム]-[管理]-[セキュリティレベルとファイヤーウォールの設定]でおこなうか,このHowtoのコマンドメモに載っている方法でおこなう.
httpdを再起動
/etc/init.d/httpd restart

あるディレクトリにパスワードをかけ,https:でのアクセスしかできないようにするには

そのディレクトリの.htaccessファイルにSSLRequireSSLという行を追加する.

2014年秋のSSL 3.0 の脆弱性 (POODLE) 対策(CVE-2014-3566)

/etc/httpd/conf.d/ssl.conf の SSLProtocol All で始まる行を検索し,
SSLProtocol All -SSLv2 -SSLv3
と書き換える。

参考

CentOSで自宅サーバー構築 (http://centossrv.com/) 2008.5現在
SSL 3.0 の脆弱性 (POODLE) 対策で Web サーバの SSL 3.0 を無効にした件とブラウザ側の対処まとめ(http://hyper-text.org/archives/2014/10/ssl_3_0_disable.shtml)2014.11現在