Let’s Encryptのサーバ証明書で、さくらVPSのサイトをSSLに対応させてみた。
本ページはアフィリエイトプログラムによる収益を得ています。
ぼちぼちSSLに対応しておいたほうがいいのかなぁということで
無料で使えるLet’s EncryptでSSL対応を試みてみた。
Contents
Let’s Encryptのインストール
gitで提供されているので良しなにインストール。
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help
./letsencrypt-auto certonly -a standalone -d www.example.com
80ポートで認証されるため
セットアップ時は80ポートで動いてるサービスを止めておく必要あり。
httpサーバ設定
443ポートを設定し 明示的にSSLを有効に
listen 443 ssl; server_name satoweb.net; ssl_certificate /etc/letsencrypt/live/[ドメイン]/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/[ドメイン]/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
WordPressURLの変更タイミングを間違えたときは
WordPressのサイトURLの変更タイミングを間違えたとき
[WordPress + MySQL] DBからサイトURLを変更 – Qiita
DBの項目を直で変更するか
Configに書きこむ
Configに書いた場合管理画面からの変更はできなくなる。
リダイレクトループで管理画面につながらない
リバースプロキシ環境でバックエンドサーバが非SSL時
Wordpressの管理画面がリダイレクトループに陥る
wp-config.phpに以下を追加し 管理画面をSSL対応にする。
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
参照:SSLサイトのWordPressでリダイレクトループのためログインできない | WordPress | kidolog
Mixed Contentを何とかする。
画像ファイルなどがSSLになっていないため
Mixed Contentと怒られるので何とかする。
DBをぺちべち変更していくのは割と無理があるのでプラグインを使用。
「Search Regex」というプラグインでコンテンツ内の置換ができるようです。
参照:WordPressサイトをhttpsにした際にハマったこと(Lets Encrypt) – hello-world.jp.net
バリューコマース/A8の素材はSSL対応しない?
テキストリンクに関しては問題ないのですが
画像の素材を使用する場合
その画像がSSL対応しないため MixedContentとなってしまう。
バリューコマースに問い合わせたところ
SSL対応の素材提供は予定していないとのこと
SliderPostを読み込むとMixed Contentになる
結局ソースを眺めてみても原因がわからなかった。
なぜか画像とともに「はてな」の画像を読み込んで
Mixed Contentになる。
参照:
・さくらVPSで、Let’s Encryptのサーバ証明書を使って、SSL対応のサイトを作る設定手順
・nginx連載6回目: nginxの設定、その4 – TLS/SSLの設定 – インフラエンジニアway – Powered by HEARTBEATS
・WordPressサイトをhttpsにした際にハマったこと(Lets Encrypt) – hello-world.jp.net