PR

さくらのレンタルサーバで、IPアドレス制限をしても無料のSSL Let’s encrypt が使える方法

IT技術
記事内に広告が含まれている事があります。
秋田
秋田

さくらのレンタルサーバで、お客さんのテストサイトへのアクセスに Basic認証を使うことが多いのだけど、きっとこれだと Let’s encrypt の自動更新ができないんじゃないかなぁ〜って思い、さくらインターネットに問い合わせしてみました。

案の定自動更新が出来ないとの事。無料のじゃなくて有料のを使ってくださいって回答。

でもやっぱり無料のを使いたいじゃないですか。なのであの手この手でやってみました。

結論

結論から言うと、Basic認証は使わずに .htaccess でIPアドレス制限をして、リーバースプロキシで別サイトを表示させ、Let’s encrypt を騙して?実現した感じです。

まあ「きっと出来てる」って所。新規の SSL取得は出来ました。更新ができるかは?3ヶ月後のお楽しみ。

手順

  1. DNS で example1.xxx.com と example2.xxx.com を CNAMEでさくらのレンタルサーバに向ける
  2. さくらのレンタルサーバで上記二つのディレクトリを作る
  3. ドメイン/SSL の設定でアクセスできるようにする
  4. example1.xxx.com に index.php と .htaccess を配置
  5. example2.xxx.com に index.php を配置
  6. 指定した IPアドレスと指定していない IPアドレスで http://example1.xxx.com にアクセスして表示が変わるか?確認
  7. SSL設定で example1.xxx.com に Let’s encrypt SSLをあてる
  8. しばらく待つ
  9. SSLが新規に取得できた(喜ぶ)

ソース

index.php は index.html でも良いと思うけどなんとなく php にしてみました。

example1.xxx.com

index.php

example1.xxx.com

これだけ書いておく

.htacces

RewriteEngine On
#アクセス許可する IPアドレス
RewriteCond %{REMOTE_ADDR} !^xxx.xxx.xxx.xxx$
RewriteCond %{HTTP_HOST} ^example1.xxx.com$ [NC]
RewriteRule ^(.*)$ http://example2.xxx.com/index.php [P,L] #httpsはだめ

指定した IPアドレス xxx.xxx.xxx.xxx はアクセスを許可。それ以外は http://example2.xxx.com/index.php のコンテンツを見せる。

ブラウザのURLは http://example1.xxx.com のまま。

example2.xxx.com

index.php

example2.xxx.com

これだけ書いておく

まとめ

これで無料SSLを利用していながら、指定した IPアドレス以外は別のコンテンツを見せる事に成功〜!

そのうちBasic認証でもやってみようかな?と思ってますが、いつになることやら・・・

タイトルとURLをコピーしました