Let's Encryptを使ってSSL証明書を使う。CentOS6等を想定。
条件として、port 80と443が外と通じていること。
ここではfoo.hoge.comというドメイン名の場合。
- httpdを止めておく
- certbot-autoを取得。
- 証明書を取得
- sudo ./certbot-auto certonly -a standalone -d foo.hoge.com
- これで/etc/letsencrypt/live/foo.hoge.com に証明書ができる
- virtual host等で複数のドメインを使っている場合は、そのドメイン名の証明書を別途取得すれば良い
- httpd/conf.d/ssl.confの中でファイルを指定
- SSLCertificateFile /etc/letsencrypt/live/foo.hoge.com/cert.pem
- SSLCertifcateChainFile /etc/letsencrypt/live/foo.hoge.com/chain.pem
- SSLCertificateKeyFile /etc/letsencrypt/live/foo.hoge.com/privkey.pem
- SSL Labs等で良い評価を得るためには、ssl.confで
- SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!RC4+RSA:+HIGH:+MEDIUM:+LOW:+3DES
- SSLCipherSuiteでRC4をDisableしておく。
- これでhttpdを起動。SSL証明書が使えているはず。
- 証明書の期限90日しかないので、cronで毎月1,15日に自動更新を行う(実際にファイルが入れ替わるのは期限が30日以内になってから)
- sudo crontab -e
- 12 1 1,15 * * /sbin/certbot-auto renew --webroot -w /var/www/html
- certbot-autoを/sbinにコピー。/var/www/htmlに一時ファイルが作られる
以上。これで簡単にSSLサイトが運用できる。
SSL Labsで評価を確認。ちゃんとA評価が取れている。