レンタルサーバーSSL、HTTPS強制・リダイレクト・Basic認証でも更新する方法
近年レンタルサーバーではlet’s encrypt によるSSL化が常識になっている。ボタン一つでSSLの設定が完了し更新作業もよしなにやってくれる。なのでレンサバでも簡単にhttps化出来るわけだ。
一方、レンサバではapacheやnginxのconfはいじれないのが一般的だ。つまりhttps強制やリダイレクト・リライト・basic認証などは基本的に.htaccessで設定する。これ設定を誤ればlets encryptの更新がコケてしまう。
SSLの更新が失敗するのは?(.well-knownディレクトリ)
let’s encrypt では更新時に以下のパスにアクセスする。
your-domain.com:80/.well-known/*
つまりhttpリクエストで、.well-knownディレクトリにアクセスできる必要があるのだ。なので全てのアクセスに対してhttps強制やBasic認証をかけていたらレンタルサーバーのSSl自動更新時に失敗してしまう。
.htaccessでSSL更新可能設定
通常はapacheやnginxのconfでこの.well-knownに対しての80ポートアクセスを許可(妨げない設定)してlet’s encryptの更新を正常に動作するようにする。しかし前述の通りレンタルサーバーではそれができないので.htaccssで設定するしかない。
HTTPS強制に対しては以下のような設定か。
RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !(^/\.well-known/) RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
サイト全体にBasic認証がかかっている時のLets encryptの更新は以下か。
SetEnvIf Request_URI "/.well-known*" wn AuthUserFile "/hoge/.htpasswd" AuthName "Please enter your ID and password" AuthType BASIC Satisfy any require valid-user Order Deny,Allow Deny from all allow from env=wn
ディスカッション
コメント一覧
まだ、コメントがありません