サイトアイコン ayame.space

CentOS 7(さくらVPS) + ApacheにLet’s Encryptの無料SSL導入

SSL証明書が無料で取れるLet’s EncryptをApache 2.4/CentOS 7に導入。

目次

ApacheにVirtual Hostを設定


vim /etc/httpd/conf/httpd.conf

httpd.confの末尾に以下を追加


NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [管理者のメールアドレス]
    DocumentRoot [HTMLのルートディレクトリパス]
    ServerName [ホスト名]
</VirtualHost>

Let’s Encryptを設定

この項の処理は全部ここに書いてあります
https://certbot.eff.org/#centosrhel7-apache

ツールをインストール


yum install python-certbot-apache

ツールを実行


certbot --apache

対話式なので指示に従う

ApacheにSSL証明書を設定


vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80
NameVirtualHost *:443  //追加

//<VirtualHost *:80>の中を以下のように編集するとHTTPでのリクエストをHTTPSにリダイレクトする
<VirtualHost *:80>
    ServerName [ホスト名]
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    </IfModule>
</VirtualHost>

//ここから下を追加
<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/[ドメイン名]/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/[ドメイン名]/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/[ドメイン名]/chain.pem

    ServerAdmin [管理者のメールアドレス]
    DocumentRoot [HTMLのルートディレクトリパス]
    ServerName [ホスト名]
</VirtualHost>

自動更新を設定

Let’s Encryptの証明書は3ヶ月しか期限がないので自動更新するように設定する

正しく更新できるか確認


certbot renew --dry-run

Congratulations… と表示されることを確認

crontabに自動更新を設定

必要なとき(一般に有効期限が30日を切った場合らしい)のみ更新が実行されるので毎日スクリプトを実行して問題ない


vim /etc/crontab

//末尾に追加
1 5 * * * root certbot renew --quiet

それにしても無料でSSL証明書がしかもこんな簡単に設定できるとはなんていい時代になったんだろう…

参考

脚注

この記事は、http://qiita.com/Ayame/items/42d9fcac64085bacbb73の加筆修正版です。

モバイルバージョンを終了