Edited at

CentOS7にLet’s Encryptをインストール

ブログ記事のコピーです。

去る7月にChrome 68がリリースされ、SSL通信でない全てのページに対して「保護されていません」のインフォメーションをURLの横に表示するようになりました。

「保護されていません」のインフォメーション

今後さらに常時SSL化の波は加速すると思われるので、いい加減Let’s Encryptを試しましょう、というお話です。


前提

今回試したのはテストサーバのCentOS7でPython 2.7.5の環境です。


手順

CentOSはepel-releaseリポジトリにCertbotがあるので、yumでインストールできます。

# sudo yum install epel-release

読み込んだプラグイン:fastestmirror, langpacks

## 略

完了しました!

# sudo yum install certbot python-certbot-apache
読み込んだプラグイン:fastestmirror, langpacks

## 略

完了しました!
#

入りました。

yum利用なので、Let’s Encrypt の使い方 - Let’s Encrypt 総合ポータルの「2. テスト実行(方法)」、「OS のパッケージ管理システムから Certbot パッケージをインストールした場合:」の手順で実行します。

# certbot

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): test@example.com
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'
d like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
Starting new HTTPS connection (1): supporters.eff.org

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: test1.example.com
2: test2.example.com
3: test3.example.com
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for test1.example.com
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/httpd/conf/httpd-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf/httpd-le-ssl.conf
Enabling site /etc/httpd/conf/httpd-le-ssl.conf by adding Include to root configuration
Created an SSL vhost at /etc/httpd/conf/httpd-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf/httpd-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server'
s configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://test1.example.com

## 後略

良い感じに終わったようです。今回は諸事情によりリダイレクト設定をしなかったのですが、しても良いならばリダイレクトをかけて良いと思います(というより基本的にはした方が良いと思います)。

これで該当ページを開き、証明書を開くと……

Let's EncryptのCertbotで生成されたSSL証明書

ちゃんとできています。


余談

この調子で他のドメインも……と思ったのですが、1つだけ躓いたことが。

最初に作成したVirtualHostのサイトだけ、そのドメインのVirtualHostではなく、デフォルトの443のVirtualHostが応答していました。そのため、ドメインに対してのSSL証明書はきちんと設定できているのですが、応答しているホストがデフォルトなので、最初のオレオレ証明書を使って通信してしまっていたようです。

なので、最初に作成するVirtualHostにさえ気を付ければ良さそうです。


参考


ChromeのSSL表示に関するアップデートについて


Let’s encryptの導入