ウェブサイトをSSL対応にしました!

最近よく耳にする無償で提供するSSL/TLSサーバー証明書の話。
弊社でも試してみた所、面倒な手続きなどもなく簡単に導入できました(^^)

証明書は「Let’s Encrypt」というMozillaなどが参加する公益法人の認証局が発行するものを利用します。
まずは証明書取得クライアントのインストール。

$ git clone https://github.com/certbot/certbot

んでもって起動。

$ cd certbot/
$ ./certbot-auto certonly --standalone -d www.freudelight.com -d test.freudelight.com

なにやら関連パッケージのインストールが始まるのでしばし待つことに。
しばらくするとCUIが立ち上がりますのでガイダンスに従って作業を進めます。

終わったら以下のパスに証明書のリンクが出来てるか確認します。

$ sudo ls -la /etc/letsencrypt/live/freudelight.com

次にSSL接続設定に証明書の場所を記述します。

$ sudo vi /etc/httpd/conf.d/ssl.conf
--- 修正 ---
#Listen 443
Listen 443 https

#DocumentRoot "/var/www/html"
DocumentRoot "/var/www/html/wordpress"

#ServerName www.example.com:443
ServerName www.freudeliht.com:443

#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/letsencrypt/live/freudelight.com/cert.pem

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/letsencrypt/live/freudelight.com/privkey.pem

#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
SSLCertificateChainFile /etc/letsencrypt/live/freudelight.com/chain.pem

証明書の有効期限は3ヶ月なので自動更新は欠かせません。
こんな感じのタスクスケジュールを追加しておくと良いです。

$ su -
# crontab -u root -e
55 23 04 * * /home/freudelight/certbot/certbot-auto renew --force-renew --dry-run && service httpd reload

めでたしめでたし(^^)v

―――とはいかんやったですorz

弊社のウェブサイトはWordpressで出来とるとですけどメインページは表示されるものの、その先の記事やリンクが全て404エラーとなってしまいました><

httpでアクセスする分には問題ないとですがhttpsだとダメ。。

色々と試した結果、SSL接続設定に以下の記述を追加することで回避できました。

$ sudo vi /etc/httpd/conf.d/ssl.conf
--- 追加 ---
ErrorDocument 404 /index.php?error=404
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

当初、リライト設定は.htaccessに記述しててリダイレクトは出来たのですが、それだと404エラー回避が効いてくれなかったです。

根本的な解決法ではない気がしますが暫くこれでしのいでおこうかと。。

コメントを残す

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