HTTPS化しました
Let’s EncryptがPublic Betaになったので、うちのサイトもHTTPS化しました。
ちなみに、http://でアクセスするとhttps://にリダイレクトされます。
面倒な手続き無し、なおかつ無料なのですが、自己証明書と違って、ちゃんとした証明書なので、エラーが出ません。
なお、有効期間は90日間だけなので、そこには注意しましょう。
「HTTPSにしろって?ふざけんな、お前が証明書取得の費用と手続きを負担しあがれこの野郎!」というのはもう過去の話なんだなあ……
Let’s Encryptの始め方
まずはソフトウェアのダウンロードです。
これにはgitが必要なので、無い人は事前にインストールする必要があります。
1 2 |
cd /opt git clone https://github.com/letsencrypt/letsencrypt |
証明書を取得します。
必要なソフトウェアは実行時に自動的にパッケージマネージャでインストールされます(CentOSだったらyumが動いてインストールされます)。
1 |
./letsencrypt-auto certonly --webroot -w ApacheのDocumentRoot -d ApacheのServerName -m メールアドレス |
証明書は/etc/letsencrypt/live/ドメイン名/
に使える証明書のファイルへのシンボリックリンクが作られますので、それを使うことになります。
Apacheの設定はCentOS 7だと/etc/httpd/conf.d/ssl.conf
を編集します。
以下のように設定ファイルを書き換えます。
SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン名/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/ドメイン名/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/ドメイン名/chain.pem
証明書は90日経つと有効期限を迎えるのでcronで定期的に新しい証明書を取得するようにしておきます。
crontab -e
を実行して以下を追記してください。
1 |
00 04 01 * * /opt/letsencrypt/letsencrypt-auto certonly --webroot -w ApacheのDocumentRoot -d ApacheのServerName -m メールアドレス --renew-by-default && /bin/systemctl reload httpd |
リダイレクト
http://でのアクセスをhttps://にリダイレクトする場合は.htaccess
またはhttpd.conf
に以下を追記してください。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule> |