最近よく耳にする無償で提供する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エラー回避が効いてくれなかったです。
根本的な解決法ではない気がしますが暫くこれでしのいでおこうかと。。