SEO対策とセキュリティで企業をバックアップします。

ITエンジニアの技術力UPをお約束します。

Let’s EncryptでSSL無料証明書を使ってみる

Let’s EncryptでSSL無料証明書を使ってみる


世の中では7月24日のChrome68の驚異に向かってSSL化へ着実にサイトを切り替えるところが多くなっています。でもサイトを沢山持っているところはかなりのお金の負担になりますね。どうするんだろう?と思ってたらLet’s EncryptでSSL無料証明書が作れるんだね。でも3ヶ月更新のようです。

色々と今後このまま続くと思えないが当座は目下SSL化を目論んでいるGoogleにしてもこの証明書は短期的に見ればまともなサイトの救済策になるのであったほうが良い。長期的には排除か順位評価を低くするというシナリオは見えてくる。個人的には、テストサイトでは十分利用価値があるとは思っています。特に今はドメインのワイルドカード証明書も作れるようだからプロトタイプサイトでホスト名だけ変更して、テストドメインは同じで使えば作業工数が減りますね。

使わないであれこれ言うよりは、まずは使ってみるというのは大事だね。ということで使ってみましたので、その備忘録を残したいと思います。

Let’s Encryptシステムのインストール方法

ドメインはtest.serve.netと仮定してやってみました。必ずそのサイトが稼働しているサイトで作業を行う必然性があります。作業する際にそのドメインのドキュメントルート配下にもコマンド実行時に細工が入るらしいので必ず稼働しているドメインである必要があるのです。インストールする場所はどこでも良いのだけど外部ツールの導入は大体が/usr/localもしくは/optなので今回は/optで行ってみたいと思います。

# cd /opt
# git clone https://github.com/letsencrypt/letsencrypt

ドキュメントルートに処理と認証を行い、対象ドメイン用の証明書群を作る。

certbot-autoコマンドは-wでドキュメントルートを指定し、-d で対象ホスト名(fqdn)、–emailで更新通知メルアドを指定します。

証明書は/etc/letsencrypt/live/test.serve.netのフォルダーに作成されます。

# /opt/letsencrypt/certbot-auto certonly --non-interactive --agree-tos --webroot -w /opt/www/html -d test.serve.net --email test@serve.net
#  ls -l /etc/letsencrypt/live/
合計 4
drwxr-xr-x 2 root root 4096  7月 21 19:04 test.serve.net
# cd test.serve.net
# ls
README  cert.pem  chain.pem  fullchain.pem  privkey.pem

※通常はcert.pem,chain.pem,privkey.pemがあれば十分。

<VirtualHost *:443>
    DocumentRoot /opt/www/html
    ServerName test.serve.net:443
    SSLEngine on
    SSLCertificateFile      /etc/letsencrypt/live/test.serve.net/cert.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/test.serve.net/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/test.serve.net/chain.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    SSLHonorCipherOrder ON
    SSLProtocol all -SSLv2 -SSLv3 -TLSV1
    SSLCipherSuite EECDH+HIGH:EDH+HIGH:HIGH:MEDIUM:+3DES:!ADH:!RC4:!MD5:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!PSK:!SRP:!DSS:!KRB5

    ErrorLog ${APACHE_LOG_DIR}/test.serve.net-ssl.error.log
    CustomLog ${APACHE_LOG_DIR}/test.serve.net_access.log combined

  <Directory "/opt/www/html">
    AllowOverride All
    Options All -Indexes
  </Directory>

</VirtualHost>

WEBサーバの再起動を行う

以下を実施すればhttpsでアクセスが行なえます。

# systemctl reload apache2  <--Ubuntu or Debian
あるいは
# systemctl restart httpd   <--CentOS,RedHat,Fedora

使ってみた感想

Let’s EncryptはPCだけではなくてスマホから使っても全く問題はなかった。短期的にはオールhttps化の回避策にはなるだろうと思うが、これはネットワーク機器用や実験用に使うべきと思います。恒久的に使ってはいけません。理由は認証が自動で所有者の正当な認証がされないSSL発行は危険だし、実際事件が起きているようなのでGoogleが恒久的には到底許すと思えない。ある程度の猶予期間や混沌とする検索エンジン世界の次のどうあるべきかが見えてきた段階で消滅するか限定的な使い方に変化するだろうと予測する。

ライセンス更新処理

放おって置くと3ヶ月でライセンスが止まるため、更新処理が定期的に必要です。更新が成功したらWEBサーバを再起動してください。

# cd /opt
# cd /opt/letsencrypt
# ./certbot-auto renew --dry-run

タグ: , , , ,