Let’s Encryptのサーバ証明書で、さくらVPSのサイトをSSLに対応させてみた。

Let’s Encryptのサーバ証明書で、さくらVPSのサイトをSSLに対応させてみた。

ぼちぼちSSLに対応しておいたほうがいいのかなぁということで
無料で使えるLet’s EncryptでSSL対応を試みてみた。

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ポートで動いてるサービスを止めておく必要あり。

他サービスで使用してるとエラーになる。
d69f1f2e793fd5834572856c61eb88e8

インストールできるとそれなりの表示あり
b3fba454b5c6d7555af85d8c3ab992ab

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