Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □Let’s encrypt SSLを導入してみる

□Let’s encrypt SSLを導入してみる

□Let’s encrypt SSLを導入してみる

MyDNS.JPのユーザーから

https://letsencrypt.org/

を使ってもいいですかー?と質問されたので、いいですよーとお答えしておきました。

で、ついでに自分も試してみることにしました。:-)

まずPythonを2.7にあげる

apt-get -y install python27*

※VineLinuxの場合にはaugeasを手動でインストール。

cd /usr/src/package/
wget http://download.augeas.net/augeas-1.4.0.tar.gz
cd ../
tar xvzf package/augeas-1.4.0.tar.gz
cd augeas-1.4.0/
./configure –prefix=/usr
make
make install
ldconfig
ldconfig -p | grep libaugeas

で、Python-2.7が入ったら、

cd ~/
git clone https://github.com/letsencrypt/letsencrypt.git

cd ~/letsencrypt
./letsencrypt-auto –help

で、OS別に./boot/~.shを動かせとかドキュメントには書いてあるけど、実際には

apt-get install -y \
git \
python \
python-devel \
python-virtualenv \
gcc \
dialog \
openssl-devel \
libffi-devel \
ca-certificates

こんなパッケージ類のインストールをしているだけ。

で、

libaugeas0 \

…はVineではパッケージが無いので、上記のようにインストールしておく。

準備が出来たら

./letsencrypt-auto certonly \
–webroot –webroot-path /home/example/html -d ssl.example.jp \
–agree-tos -m webmaster@example.jp

とすると、

> IMPORTANT NOTES:
> – Congratulations! Your certificate and chain have been saved at
> /etc/letsencrypt/live/ssl.example.jp/fullchain.pem. Your cert will
> expire on 2016-03-07. To obtain a new version of the certificate in
> the future, simply run Let’s Encrypt again.
> – If like Let’s Encrypt, please consider supporting our work by:
>
> Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
> Donating to EFF: https://eff.org/donate-le

となる。

ls -la /etc/letsencrypt/live/ssl.example.jp/

> lrwxrwxrwx 1 root root 39 12月 8 13:08 cert.pem -> ../../archive/ssl.example.jp/cert1.pem
> lrwxrwxrwx 1 root root 40 12月 8 13:08 chain.pem -> ../../archive/ssl.example.jp/chain1.pem
> lrwxrwxrwx 1 root root 44 12月 8 13:08 fullchain.pem -> ../../archive/ssl.example.jp/fullchain1.pem
> lrwxrwxrwx 1 root root 42 12月 8 13:08 privkey.pem -> ../../archive/ssl.example.jp/privkey1.pem

に公開鍵と秘密鍵が出来ている。

これを以下のように設定する

cat > /etc/apache2/conf.d/vhosts/ssl.example.jp.conf

----------
<VirtualHost *:80>
ServerAdmin webmaster@example.jp
ServerName ssl.example.jp
ServerAlias www.ssl.example.jp
# SuexecUserGroup apache apache
DocumentRoot /home/example/html
ErrorLog /home/example/logs/error_log
CustomLog /home/example/logs/access_log combined
ErrorDocument 404 /

CBandSpeed 80Mbps 200 100
CBandRemoteSpeed 50Mbps 50 50

<Location /traffic-status>
SetHandler cband-status
Order allow,deny
Allow from 210.197.72. 210.197.73. .big.or.jp .bbexcite.jp
</Location>

<Directory />
AllowOverride All
</Directory>
</VirtualHost>

<VirtualHost *:443>
ServerAdmin webmaster@example.jp
ServerName ssl.example.jp
ServerAlias www.ssl.example.jp
# SuexecUserGroup apache apache
DocumentRoot /home/example/html
ErrorLog /home/example/logs/error_log
CustomLog /home/example/logs/access_log combined
ErrorDocument 404 /

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!SSLv3:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/letsencrypt/live/ssl.example.jp/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ssl.example.jp/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/ssl.example.jp/fullchain.pem

<Files ~ “\.(cgi|shtml|phtml|php3?)$”>
SSLOptions +StdEnvVars
</Files>
<Directory “/var/www/cgi-bin”>
SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent “.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

<Directory />
AllowOverride All
</Directory>
</VirtualHost>
----------

あとは定期的に鍵の更新を実行すればよい。

cat > /root/renew_sslkey.sh

----------
#!/bin/sh
/root/letsencrypt/letsencrypt-auto certonly –webroot –webroot-path /home/example/html -d ssl.example.jp –renew-by-default
----------
※SCLを使ってPythonを入れた場合には、上記のコマンドそのものを
「/usr/bin/scl enable python27 ‘/root/letsencrypt/letsencrypt-auto …’」
というようにくくればOK

chmod 700 /root/renew_sslkey.sh

として、これを定期的に実行すればいい。

----------
#
# RENEW SSL
50 11 1 * * /root/renew_sslkey.sh > /var/log/renew_sslkey.log
----------

複数ドメインを利用する場合には、

NameVirtualHost *:443

を忘れずに。

そのドメインでWordPressを動かしていたら、ダッシュボードから設定に入って、
URLを「http://~」から「https://~」にするだけでOK。楽チン!!

補足:

・punnycodeなドメイン(日本語ドメインとか)には対応していない…(´・ω・`)

Name of author

Name: admin

One thought on “□Let’s encrypt SSLを導入してみる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です