サイトをSSL化する(VPS, CentOS6 + Apache)
ssl化の必要できたので、さっとやってみた。大体以下な流れ
1. SSL用の鍵作成とCSRの作成
2. 証明書を申し込みと支払い
3. 証明書等をセット
4. OK
環境:
まず、どこで証明書を買うかを決める
- AWSならこれだと無料でいけるみたい
[AWS Certificate Manager]東京でも無料でSSL証明書が使用可能になりました! | Developers.IO - あとは、個人利用なら
lets encrypt
も可。無料。
が、結局、
ラピッドSSL | さくらのSSL
こちらに決定。
mod_ssl入れる
入ってない場合は入れる。
$ yum install mod_ssl
SSL用の鍵作成とCSRの作成
*鍵をどこに置くかだけど、今回は/etc/httpd/conf/
以下にフォルダ作って置いた。他にも/etc/pki/tls/certs
以下に置いてたりがデフォっぽい。(ssl.confの設定では、これ以下にあったし、この以下にはダミーも置いてたので、こちらのがええかも…)
$ cd /etc/httpd/conf $ mkdir ssl.key // 秘密鍵用 $ mkdir ssl.csr // CSR用 $ mkdir ssl.crt // 証明書用 // 秘密鍵作成 (2048bitで作ります) // パスワード求められます。このパスワード忘れないように $ openssl genrsa -des3 -out ./ssl.key/hogehoge.com.2016.key 2048 // CSR作成 (さっきのkeyを使って作成する) // で、ここで国とか組織名とか色々聞かれる $ openssl req -new -key ./ssl.key/hogehoge.com.2016.key -out ./ssl.csr/hogehoge.com.2016.csr
申し込みと支払いする
ここは各プラットフォームの流れにそってやる。上で作ったCSRの中見を$ cat hogehoge.com.2016.csr
してコピペするシーンもあり。
セットする
審査中・審査後、メールでOOセットしてくれ、とか言われるので、その通りにする。
終わったらこんな感じになってる。
/etc | |-httpd | |-conf | |-ssl.key | | | |-hogehoge.com.2016.key | |-ssl.csr | | | |-hogehoge.com.2016.csr | |-ssl.crt | | | |-hogehoge.com.2016.crt | |-intermediate_sha256.cer
で、あとはssl.confに反映させるのと、firewallでsslのポートを通す
$ vim /etc/httpd/conf.d/ssl.conf SSLCertificateFile SSLサーバ証明書ファイルを指定します。 SSLCertificateKeyFile SSLサーバ証明書とペアになる秘密鍵を指定します。 SSLCertificateChainFile CSPSSLの中間証明書ファイルを指定します。 $ vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT // これを追加したりする $ service iptables restart $ service httpd restart
で、https://hogehoge.comでアクセスして表示されたらOK!
参考:
あと、key, crt, csr !?!?!!?とかの詳しい説明についてはここがわかりやすい。
RSA鍵、証明書のファイルフォーマットについて - Qiita
ざっくり、
keyが秘密鍵、
csrが証明申込書(Requestリクエスト)
crt(Certificationなので)証明書
って感じ。(ざっくり…)