無料SSL Let's Encryptの導入

広告

無料SSL Let's Encryptの導入方法の備忘録です。
Let's Encryptの証明書は3か月更新となってます。更新方法も併せて!
まずは導入から。

導入


環境


・CentOS7
・Apache2.4

HTTPS (443) ポートを開放


# firewall-cmd --add-service=https --zone=public --permanent
# firewall-cmd --reload


Let's Encrypt のクライアントcertbotをインストール


# yum install epel-release
# yum -y install certbot


証明書の初回作成


# certbot certonly --agree-tos --non-interactive -d [ドメイン名] --webroot -w [ドキュメントルートのパス] --email [管理者のメールアドレス]

コマンドを実行すると/etc/letsencrypt/live/[ドメイン名]/に証明書が生成されます。

mod_sslのインストール


# yum -y install mod_ssl

コマンドを実行するとapacheのモジュールフォルダ内にssl.confファイルが生成されます。

mod_ssl設定


今回もいつも通り最小限の設定しなければいけない項目だけ記述しておきます。
VirtualHost 443タグ内にある(なければ追加)
ServerName
ServerAdmin
DocumentRoot
SSLCertificateKeyFile
SSLCertificateFile
SSLCertificateChainFile
に対して値を指定していきましょう

vi /etc/httpd/conf.d/ssl.conf
<VirtualHost *:443>
## 以下設定箇所だけ抜粋
ServerName ドメイン名
ServerAdmin 管理者のメールアドレス
DocumentRoot ドキュメントルートパス
SSLEngine on
SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン名/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/ドメイン名/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/ドメイン名/chain.pem
</VirtualHost>


HTTP→HTTPS転送設定(必要に応じて)


mod_rewriteモジュールを使ってすべてのアクセスをHTTPSに転送することができます。
設定ファイルをモジュールフォルダ内に作成しましょう

vi /etc/httpd/conf.d/rewrite.conf
<IfModule rewrite_module>
RewriteEngine On
LogLevel alert rewrite:trace3
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>


Apacheの再起動


設定を反映させるためにApacheを再起動させます。
systemctl restart httpd


確認


ここまできたらHTTPS化できてるはずです。
自身のサイトにブラウザでhttpsでアクセスしてみましょう。
画像のようになっていれば成功です。




更新


文頭でも記述した通りLet's Encryptの証明書は3か月更新となってます。
期限が近づくと設定したメールアドレスに対して有効期限のアラートが届きます。
その際以下のコマンドを実行すると期限を延長することができます。
# certbot renew

ちなみに更新作業をcrontabで自動化することもできます。
こちらに関しては次回改めて投稿いたします。

参考サイト


導入方法
https://weblabo.oscasierra.net/letsencrypt-2/
https://qiita.com/ariaki/items/5680cb6da6223844af4e
更新自動化
https://weblabo.oscasierra.net/letsencrypt-renew-cron/
広告

Profile