let’sencryptの導入・自動更新の方法

letsencrypt

この記事はさくらのVPSサーバーで 無料のletsencryptを導入しSSLの自動更新をしたいけど やり方がわからない人に向けて書いています。

僕のサーバー情報は下記です。

さくらVPS
apache2.4.6
centos7.3.1611
ちなみに同じサーバーで以前異なるドメインでletsencryptでSSLを導入・自動更新設定しています。

今回のケースは新たにとったドメイン(hogehogehoge.com/)
を letsencrypt でSSLに設定するにはどのような手順でおこなうのか解説します。

流れは下記です。

①ドメインのDNSレコードを設定

②Webサーバのhttpd.confにhogehogehoge.com用VirtualHostを記載

③Apache再起動
④ssl.confにhogehogehoge.comのVirtualHostを追加

⑤Apache再起動

⑥ブラウザでサイトにアクセスできることを確認

では詳細を見ていきましょう。

①ドメインのDNSレコードを設定

まずさくらの会員サイトのメニューバーにある契約情報をクリックします。
契約情報
次にドメインメニューをクリック。

ゾーン編集ボタンをクリックします。
ゾーン編集
エントリ名は空白のままで大丈夫です。
種別をIPアドレスにして、IPアドレスを入力してください。
終わったら新規登録をクリックします。
新規登録

②Webサーバのhttpd.confにhogehogehoge.com用VirtualHostを記載

証明書取得時に外部(Let’s Encryptのサーバ)からアクセスできるようにします。

httpd.confを開き以下を記述します。

ServerName hogehogehoge.com

DocumentRoot “/var/www/html/hogehogehoge”

 

#以下を追加↓↓↓

ServerName hogehogehoge.com

ErrorLog logs/hogehogehoge-error_log

DocumentRoot “/var/www/html/hogehogehoge”

③Apache再起動

systemctl restart httpd

でApacheを再起動します。

④ hogehogehoge.com 用証明書を取得

certbot run --apache -d hogehogehoge.com

⑤証明書ファイルが取得できていることを確認

以下の証明書ファイルが取得できているか確認します。
ls /etc/letsencrypt/live/ hogehogehoge.com /cert.pem
ls /etc/letsencrypt/live/ hogehogehoge.com /privkey.pem
ls /etc/letsencrypt/live/ hogehogehoge.com /chain.pem

⑥ssl.confにhogehogehoge.comのVirtualHostを追加

ssl.confを開き以下を記述します。
(省略)

SSLCryptoDevice builtin

#追加↓
NameVirtualHost *:443

#追加↓
SSLStrictSNIVHostCheck off
ServerName hogehogehoge.com
DocumentRoot “/var/www/html/hogehogehoge”
SSLCertificateFile /etc/letsencrypt/live/hogehogehoge.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hogehogehoge.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/hogehogehoge.com/chain.pem

KeepAlive On
MaxKeepAliveRequests 20
KeepAliveTimeout 5
SetOutputFilter DEFLATE

# Mozilla4系などの古いブラウザで無効、しかしMSIEは除外
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# gifやjpgなど圧縮済みのコンテンツは再圧縮しない
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _\.utxt$ no-gzip

# htmlやcssなどは圧縮
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php

CacheRoot /tmp/cache
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3

ServerName hogehogehoge.com

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLOptions +StdEnvVars

<Directory “/var/www/cgi-bin”>
SSLOptions +StdEnvVars
AllowOverride All

BrowserMatch “MSIE [2-5]” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”
SSLCertificateChainFile /etc/letsencrypt/live/hogehogehoge.com/chain.pem

⑤Apache再起動

systemctl restart httpd

でApacheを再起動しましょう。

⑥ブラウザでサイトにアクセスできることを確認

と、ここで
hogehogehoge.com
にアクセスしてもつながらない。

SSL設定がうまくいっていないのか、それともWordPressのエラーなのか、切り分け

①テキストファイルを作成
echo "test" > /var/www/html/hogehogehoge/test.txt

②ブラウザでアクセス
https://hogehogehoge.com/test.txt

権限がないことによるエラーと判明。
直近のアクセスログとエラーログも確認。
同時に、SSLサーバ証明書が正しく設定されていることも確認できた。

アクセス権を修復後に再度ブラウザでアクセス確認

エラーに関しては、前回と同様にセキュリティモジュールの影響が考えられますので、
下記コマンドでファイルアクセス権を修復後に再度ブラウザでアクセス確認

restorecon -R -v /var/www/html/ hogehogehoge

let’s scriptのSSLが期限切れにならないように自動更新を設定

自動更新をしていないのであれば下記のコマンドでできます。
/usr/local/certbot/certbot-auto renew --force-renewal && /bin/systemctl reload httpd

一度実行していれば
今後さらにドメインを追加し、let’s scriptのSSLを設定しても自動的に全ドメイン自動でSSLの更新がされます。

これでうまくいきました。

もし、上記の通り設定していって途中でわからなくなったらラインでもいいので、
メッセージいただければできる限りサポートします^^

Web発信力を高め、自由なライフスタイルを手に入れる

僕が独立し、集客に特化したWebサイトの仕事を専門とするまでに至った背景、組み立て方まですべて公開しようと思います。
ただし、サポートコンテンツ(Webサイトの無料添削講座)もメルマガで発信するため、人数はある程度で締め切る予定です。
下記はメルマガ読者さんからの声です。
☑︎実際にランティングページに応用が効く本当に使えるノウハウが多くてびっくりです。
☑︎ザ・コピーライティング、神田さんが監督している本を読んでいましたがこのメルマガではそれ以外の不足部分が補強された感じがします。
☑︎ウェブを通してモノを売りたければ、このメルマガは読む価値がありますね
☑︎ここまで実践的なメルマガは初めてです。ありがとうございます。
☑︎ウェブの成約率が上がる方法を初めての方にでも理解できるようにわかりやすく書かれています。

ABOUTこの記事をかいた人

セールスコピーライター兼マーケター。世の中に埋もれている価値をより多くの人に提供する活動を行っています。 新卒後、対面販売の営業でクライアント3,000社から人の心をつかみ信頼を得る方法を学ぶ。 その後、ダイレクトマーケティングの支援会社で、文章だけでモノが売れる仕組みを(通販)学ぶ。(たった3人の会社で売上3億とか) 現在は対面販売と通販の経験を経て、セールスコピーライター兼マーケターとして独立。 対面で人の心をつかみ、通販支援でコピーライティングのノウハウを学んだ経験でクライアントの売上げアップに貢献しています。