無料SSLは怪しい?危険?
特に、暗号化強度については違いはありません。問題が出るとしたら、認証局の信頼性といったところでしょうか。
Let’s Encryptとは?
Let’s Encryptの運営母体は電子フロンティア財団(EFF)です。すべて暗号化した HTTPS に置き換えようという野心的な目標が掲げられ、無料SSLを発行しています。
Let’s Encrypt(公式サイト)
https://letsencrypt.org/
Let’s Encryptは、Mozilla、Akamai Technologies、Cisco Systemsなどの支援によりサービスが提供されています。
有料販売SSLの認証局と比べて、サービス提供終了のリスクも考えられますが、有名なスポンサーが名を連ねているため、安心していいでしょう。そしてなんと、2018年1月にワイルドカード証明書の発行が開始になりました!!!!
ただし、Let’s Encryptなどの無料SSL認証局ではDV SSL(ドメイン認証型)のみが提供されており、OV SSL(企業認証型、実在証明型)やEV SSL(企業の実在性を厳格に認証)などを取得することはできません。
OV SSL、EV SSLの違いはジオトラスト社のページの説明がわかりやすいです。
https://www.geotrust.co.jp/ssl_guideline/compare/ovdv.html
Let’s Encryptのデメリット
現状、Let’s EncryptのSSLは3ヶ月ごとの更新が必要になっています。
(スクリプトを設定すれば自動更新可能らしい)
自動化スクリプトcertbotをインストールします
(AWS EC2/Apache)
まずは、スクリプトをインストール
$ curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
ところが、なぜか
$ /usr/bin/certbot-auto: line 2: syntax error near unexpected token `newline'
スクリプトの中身を見ると、どうやら、403エラーで、正しくダウンロードできていなかったようです。
再度、時間を置いて試すと、ダウンロードするとすんなりいきました。
$ curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
早速スクリプトを動かしてみます。他のブログに書かれていた流れと違っていたので、スクリプトは、頻繁に更新されているようです。
$cd /usr/bin/
$ certbot-auto certonly --webroot -w /var/www/example.com -d example.com --email unknown@example.com
-w ドキュメント・ルートのパス
-d 認証するドメイン名
–email メールアドレス登録 (通知用)
FATAL: Amazon Linux support is very experimental at present...
if you would like to work on improving it, please ensure you have backups
and then run this script again with the --debug flag!
Alternatively, you can install OS dependencies yourself and run this script
again with --no-bootstrap.
–debugでスクリプトを実行してね。と書いてあります。
いくつか、パッケージのインストールが必要でした。
$ ./certbot-auto --debug
・・・(省略)・・・
===================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================
Installing:
augeas-libs x86_64 1.0.0-5.7.amzn1 amzn-main 345 k
libffi-devel x86_64 3.0.13-16.5.amzn1 amzn-main 23 k
python27-tools x86_64 2.7.12-2.121.amzn1 amzn-updates 709 k
system-rpm-config noarch 9.0.3-42.28.amzn1 amzn-main 63 k
Transaction Summary
===================================================================================================================================
Complete!
Creating virtual environment...
Installing Python packages...
Installation succeeded.
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):
ここでメールアドレスを求められたので、更新情報受信用のメールアドレスを入力します。
ここで入力したメールアドレス宛EFF(ERECTORIC FRONTIER FOUNDATION:電子フロンティア財団)からのメールが届いたため、メールに届いた認証用アドレスにアクセス。
その後いくつか確認が求められました。
-------------------------------------------------------------------------------
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 EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: example1.example.com
2: example2.example.com
3: example3.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): 2
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
ここで、1を選んだのですが、バーチャルドメイン(80)の設定は残ったまま、/etc/httpd/conf.d/にvhost-le-ssl.confが追加されていました。中を見ると、選択したバーチャルドメイン(443)の設定が書かれています。
Apacheを再起動して、ブラウザで確認したところ、SSLが正しく動作していました。
あとは証明書自動更新の設定をします。(毎月1日3時に更新)
00 03 1 * * /usr/bin/certbot-auto renew --force-renew && service httpd graceful
追記:上記のcrontabはアップデートでうまく動かなかったため、下記に置き換えました
00 03 1 * * /usr/bin/certbot-auto renew -q --no-self-upgrade --post-hook "service httpd reload"