さんさろ

Webエンジニアの雑記&技術、たまにドイツ

さくらのレンサバで無料SSLを使ってみる

Chromeで標準で警告が出るようになったということなので

趣味でやってるサイトに SSL を導入してみることにしました。

大切な情報をやりとりするわけではないですが、まあメールフォームもあるし、SSL証明書がタダだし……ということで。

全然難しくないのでメモする意味もなさそうですが、とりあえず備忘録。

 

環境

 

手順

1)コンパネで無料SSLの申し込み

ここまで来たら、しばし待つ。

 

2)登録完了メールが来る

出来たらしい。

 

3).htaccessSSL無しのアクセスを、全て SSL へリダイレクトさせる

以下は、Lumenの場合。変更する .htaccess

public/.htaccess

です。ここ地味にハマりました。

最終的な中身は、こう。

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# さくらの説明書き、プラス↓が必要だった。
RewriteBase /

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

 

なんか、うん、

RewriteBase /

が必要だったみたいです。

でないと、トップページは見られたけど、それ以外のページにアクセスすると

Internal Server Error で返ってこられなくなりました。以下、その時のエラーログ。

    Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get backtrace.

一人で勝手に右往左往しました。

 

注意

最初、トップページに https:// でアクセスしても、証明書は表示出来るのに、「保護されています」が表示されなくて、なんでじゃ?と思ってたのですが。

ページ中に、例えば画像のリンク先が http:// で始まるもの(いわゆる直リンク画像)などがあると、セキュアじゃありませんと出る。

折角 SSL 入れたのに。

直リンク画像を全て変更したら、無事、保護されていますになりました。

(これはyahooですが。)

 

参考

help.sakura.ad.jphelp.sakura.ad.jpqiita.com