先日、おうちサーバーで動かすRSSジェネレータ(feed43みたいな)を作成したのですが、http接続だとClipcboard APIがブロックされてしまいリンクがコピーできないという問題が生じてしまいました。
そこで外部公開せずにうまいことアラートの出ない証明書をゲットする方法を模索していたところ、良い方法を見つけることができました。 Let's EncryptのDNS認証を使うというものです。 これなら認証はドメインプロバイダのDNSを介して行われるので、ローカルIPに対してSSL証明書を発行できちゃいます。
ただ、手動でぽちぽちするのも面倒なので色々使いやすいようにしたDockerコンテナをつくっちゃいました。 いつものように GitHub で公開しています。 現状Cloudflareのドメインしか対応していませんので、他のプロバイダを使っている方がいたらよければプルリクエスト等送ってください〜
RSSジェネレータの記事はこちら↓
つかいかた
GitHubからクローンする
以下のコマンドを実行し、HTTPS_Hubをダウンロードします。
git clone https://github.com/projects-shelf/HTTPS_Hub.git cd HTTPS_Hub
CloudflareでAPIキーを作成する
Cloudflareでゾーン DNS を編集するAPIキーを作成します。 使用したいドメインのルートドメイン(*.local.example.comならexample.com)をゾーンリソースに含むようにします。
いろいろ設定する
自分の環境にあわせて docker-compose.yml と config.yml を編集します。
ports: - rssr=:50046 - rssg=192.168.0.2:50048
config.yml はこんな感じになっており、ポートだけ書くとdocker-compose.ymlで設定したローカルIPに、IPも書くとそのIPにプロキシされます。
https://rssr.local.example.com -> http://{LOCAL_IP}:50046 https://rssg.local.example.com -> http://192.168.0.2:50048
実行
docker-compose up -d で動かします。
警告が出ることなくおうちサーバーにHTTPS接続ができます! やった〜
アプリを作ったりしています! よかったらみていってください→
つくったもの
今のイチオシ↓