無料のSSL証明書Let’s EncryptをCentOS6.5に導入する方法
社内の開発サーバにSSLを導入したい
モールと連携する際に最近ではAPIを使って行うのがスタンダードになってきましたが、テスト環境であってもロールバックURLにSSLを求められることがたまにあります。社内の開発サーバにわざわざ有料のSSLを適用するのは少々もったいないので最近話題になっているフリーのSSL「Let’s Encrypt(レッツエンクリプト)」を社内の開発サーバに適用したのでその手順を記録しておきます。
環境(弊社の開発サーバ)
- アパッチです
- DDDNSでドメインを付与しています
- ポート80と443を開けています
- ベーシック認証をしていません
やりかた
1.依存パッケージをYUMでインストールしておきます
# yum install -y httpd mod_ssl git openssl
2.任意のフォルダに移動します
# cd /opt
3.GITでファイルをクローンします
# git clone https://github.com/letsencrypt/letsencrypt
4.移動します
# cd letsencrypt
5.ヘルプファイルの確認
# ./certbot-auto --help
6.それでは鍵を発行します
# ./certbot-auto certonly --non-interactive --agree-tos --webroot -w /var/www/html -d [sample.com] --email [sample@sample.com]
オプション | 説明 |
---|---|
certonly と –webroot | ウェブサーバを停止することなく SSL/TLS 証明書を発行したい場合には、Webroot プラグインを使用します |
-w | Webサーバのドキュメントルートディレクトリ(ウェブサーバで公開するコンテンツが入っているディレクトリ)を指定します、/var/www/htmlから変更している場合は適宜変更してください |
-d | ドメイン名です、DDDNSサービスなどで設定しているドメインを指定します |
期限が切れそうになったら告知したいメールアドレスを指定します |
7.成功しているか確認
# cd /etc/letsencrypt/live/
指定したドメイン[sample.com]のフォルダが出来ていたら成功です。
超簡単ですね(感動)!
中にはpemファイルが入っているので興味があったら見てみましょう。
8.SSLを設定します
# vi /etc/httpd/conf.d/ssl.conf
ServerName [sample.com]:443 SSLCertificateFile /etc/letsencrypt/live/[sample.com]/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/[sample.com]/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/[sample.com]/chain.pem
9.再起動
service httpd restart
DDDNSのドメインでSSLに接続できると思います
無料!無料!ワッショイ!嬉しいですねー
10.自動更新
Let’s Encryptは3か月で有効期限が切れてしまうので最後にCRONで定期更新するようにしておきましょう
#crontab -e 50 3 * * * /opt/letsencrypt/certbot-auto renew --post-hook "/usr/sbin/apachectl graceful"