ラック
Home > ブログ > 記事 > 2018年7月 > CentOS7にLet’s Encryptをインストール

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

カテゴリ: サーバ

経緯

つい先日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

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=test1.example.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/test1.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/test1.example.com/privkey.pem
   Your cert will expire on 2018-10-24. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

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

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

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

ちゃんとできています。

余談

この調子で他のドメインも……と思ったのですが、1つだけ躓いたことが。最初に作成したVirtualHostのサイトだけ、そのドメインのVirtualHostではなく、デフォルトの443のVirtualHostが応答していました。そのため、ドメインに対してのSSL証明書はきちんと設定できているのですが、応答しているホストがデフォルトなので、最初のオレオレ証明書を使って通信してしまっていたようです。検証としてデフォルトの443のVirtualHostの証明書を/etc/pki/tls/certs/localhost.crt、秘密鍵を/etc/pki/tls/private/localhost.keyだったのを/etc/letsencrypt/live/test1.example.com/cert.pem/etc/letsencrypt/live/test1.example.com/privkey.pemに挿げ替えたらその証明書で通信したので判明しました。

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

参考

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

Let’s encryptの導入

タグ: サーバ環境・構築,手順

 



関連する記事一覧