Let's Encryptの利用で無料でSSL対応!

スポンサーリンク
スポンサーリンク

Let’s Encrypt は無料で SSL/TLS 証明書を取得できるサービスです。

SSL/TLS 証明書は、証明書取得・管理ソフトウェアである、Certbot クライアントで実行されます。
各ディストリビューション毎のインストール・実行方法は次の個所で説明されています。

Certbot クライアントのインストール – Let’s Encrypt 総合ポータル

ここでは、CentOS6 で apache を SSL対応する場合について説明します。

スポンサーリンク

準備

はじめに、/etc/httpd/conf.d/ssl.conf のバックアップをとっておきます。
これは、以降の手順での Certbot クライアント実行時に ssl.conf が上書きされるためです。

cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak

次に、EPELリポジトリを利用できるようにします。

root で作業します。

yum install epel-release

この後、ファイル /etc/yum.repos.d/epel.repo 内で enabled = 1 にして下さい。
これをしないと、EPELリポジトリが有効にならず、以降の手順で ./certbot-auto 実行時に、virtualenv 等が入らなくて失敗します。

SSL/TLS サーバ証明書の取得

Certbot クライアントをダウンロード・実行します。
次を root で実行して下さい。

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto

必要なパッケージがダウンロード・インストールされます。

なお、Let’s Encrypt の説明をしているサイトの中には、手動で Python2.7 のインストールが必要と記載しているものがありますが、現在では不要です。
2016年10月14日 の certbot-auto 0.9.3 以降、CentOS6標準の Python2.6 でもOKになっており、certbot-auto で自動的にインストールされます。

次の画面になったらドメイン名を入力します。

画像

メールアドレスを入力します。
証明書の有効期限が近付いた場合の通知に使用されます。

画像

Agree を選択して Enter を押します。

画像

この表示が出たら Select を選択します。
何回か出るかも知れませんが、そのたびに選択して下さい。

画像

この後、以下の表示が出たら、443番ポートへのアクセスが失敗しています。

Failed authorization procedure. XXXX.XX.XX (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Failed to connect to XX.XX.XX.XX:443 for TLS-SNI-01 challenge

本作業時に、Let’s Encrypt がサーバの443番ポート(HTTPS)にアクセスして来ます。
ファイアウォールでブロックしていないか確認して下さい。

また、Let’s Encrypt の接続は海外から行われます。
下記記事のような、国内からの接続のみ許可している場合も、一時的に解除してください。

iptables - 国内からの接続のみ許可して海外からの接続を遮断する パソコン鳥のブログ

以下表示が出たら完了です。

画像

Certbot クライアントの実行によって、/etc/letsencrypt 下に証明書ファイルが取得されます。

また、ssl.conf の下記項目が、/etc/letsencrypt 下の証明書ファイルを参照するように追加/上書きされます。

ServerName
SSLCertificateChainFile
SSLCertificateFile
SSLCertificateKeyFile

これで、ブラウザから「https://あなたのドメイン名」でアクセスできるようになります。

参考

ユーザーガイド – Let’s Encrypt 総合ポータル
Certbot クライアントのインストール – Let’s Encrypt 総合ポータル

コメント

タイトルとURLをコピーしました