2016-02-03  ssl  web  apache 

さくらVPSで、Let's Encryptのサーバ証明書を使って、SSL対応のサイトを作る設定手順

注意

前提

目標

方法

$ cd
$ sudo /etc/rc.d/init.d/httpd stop
$ sudo yum update
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help
$ ./letsencrypt-auto certonly -a standalone -d www.example.com
$ sudo ls -1 /etc/letsencrypt/live/www.example.com
cert.pem
privkey.pem
chain.pem
fullchain.pem
$ sudo vi /etc/httpd/conf/httpd.conf
...snip...
<VirtualHost XXX.XXX.XXX.XXX:443>
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/chain.pem
  ServerAdmin root@www.example.com
  DocumentRoot /home/USERNAME/www.example.com
  ServerName www.example.com
  <Directory "/home/USERNAME/www.example.com">
    Options -MultiViews
    AllowOverride All
  </Directory>
</VirtualHost>
$ sudo /etc/rc.d/init.d/httpd start

更新時

$ cd
$ sudo /etc/rc.d/init.d/httpd stop
$ sudo yum update
$ cd letsencrypt
$ ./letsencrypt-auto renew
$ sudo /etc/rc.d/init.d/httpd start

自分用のメモ。すでにcertbot-autoをインストールしたので、上の./letsencrypt-auto renewの代わりに以下を実行すること。

$ ./certbot-auto renew

cronを使った定期的更新のためのメモ

動くかどうかのテストではcertbot-autoのオプションとして、以下を活用すること。

/home/USERNAME/MYDIR/cron-renew-letsencrypt-certificatesというスクリプトを用意。

#! /bin/bash⇣

/etc/rc.d/init.d/httpd stop
cd /home/USERNAME/MYCERTBOTDIR
/home/USERNAME/MYCERTBOTDIR/certbot-auto renew --quiet > /var/log/certbot.renew.log 2>&1
/etc/rc.d/init.d/httpd start

cronを設定する。

$ sudo crontab -u root -e

以下の設定は毎日12時34分実行だが、ここは自分用にランダムにする。

34 12 * * * /home/USERNAME/MYDIR/cron-renew-letsencrypt-certificates

メモ

関連

参照

 2016-02-03  ssl  web  apache