ClockRoom

Since April 2000

勝手気ままに楽しくつくる ClockRoom のウェブサイト

Contents - 目次

Topics - 最新情報

さくらのレンタルサーバ相当のSSL環境をDockerで構築する

要はSSL対応リバースプロキシをNGINXで構築してApacheの手前に置く。 ついでに自己署名証明書を自動発行する。 たまにローカルでもSSL環境が欲しいときがあるので、そういうことをやってみた。 ちなみにApacheのほうはちょうど1年前に構築済みなので割愛。 先に成果物をば ────

[画像] Dockerイメージ (1)

というわけで、考えなしに最初に作ったDockerイメージがこれ。 ルート証明書、サーバー証明書、プロキシが全部入りのスペシャルディッシュ。 一見すると簡単便利そうだけど、ビルドするたびにルート証明書が別物になるからNG。 ちょっと考えればわかるだろ(T^T)

[画像] Dockerイメージ (2)

ちょっと考えて次に作ったDockerイメージがこれ。 証明書とプロキシを分けてみた。 これで完璧と思うやいなや、サーバー証明書を更新したらルート証明書も別物になることに気づいてNG。 よく考えればわかるだろ(ノД`)

[画像] Dockerイメージ (3)

よく考えて最後に作ったDockerイメージがこれ。 ルート証明書だけ独立させた。 逆に滅多なことがない限りサーバー証明書とプロキシはペアなので同居。 今度こそ完璧(`・ω・´)ゞ

[画像] 実装パターン

  • 既存のComposeにプロキシを追加して接続
  • 別立てのプロキシを別立てのネットワークで接続
  • 別立てのプロキシをホスト迂回で接続

主な実装パターンはお好みで以上の3パターンかな? Win・Macでちょっと使う程度なら3つ目のが一番お手軽だと思う。

[画像] 証明書は標準に準拠していません

完璧だと思ったのにSafariだけ証明書は標準に準拠していませんとかいう意味不明な理由でサーバー証明書がエラー。 検索しても現象そのものは全然ヒットしない。 代わりに気になる記事を見つけた。

なるほど、良かれと思ってサーバー証明書の有効期間を10年にしたのが原因らしい。 有効期間を1年に変更したらエラーは消えた。 ほらね、ルート証明書とサーバー証明書を別居させたのが早くも役に立ったよ(苦笑)

others - その他