外に公開されている 80, 443 を見れるプロキシ鯖の裏に複数のドメインで Web サーバを複数動かしていた。バックエンド鯖側は見かけ上は 443 ポートで証明書ありのれっきとした暗号化通信をしているようにしていたが実のところプロキシ鯖とバックエンド鯖の間は 80 ポートで通常の http 通信をしている。と、ここまではよかった。もうかれこれ5年はそのままで動いていた。

構成図(今まで)
ブラウザ https://www.ktsys.jp/wp —— https 通信(443) –> プロキシ鯖*1 — http 通信(80) —> バックエンド鯖(Webサーバ)*2

構成図(欲しかったもの)
ブラウザ https://wordpress.ktsys.work – https 通信(443) –> プロキシ鯖*1 — https 通信(443) -> バックエンド鯖(Webサーバ)*3

*1 *.ktsys.jp という ktsys.jp 以下のサブドメイン全てに対応する LetsEncrypt製の証明書設置
*2 80 ポートのみで通信するWebサーバなのでオレオレ証明書すら入ってない
*3 80/443 ポートで通信出来る Docker + nginx-proxy + letsencrypt + WordPress という構成で ktsys.work, wordpress.ktsys.work で使えるれっきとした証明書が入っている

ケーブルテレビの世界では BS デジタルパススルーというものがある。それと同じようにプロキシの世界にも https 通信パススルーが当然あるだろうと思ってた。

出来なかった。簡単に出来るもんだと思ってた。

↓今までの設定
<VirtualHost *:443>
    ServerName ktsys.work
    ServerAlias wordpress.ktsys.work
    ProxyPass / http://192.168.1.23/
    ProxyPassReverse / http://192.168.1.23/
</VirtualHost>
    SSLProxyEngine on
    SSLProxyVerify none
#   SSLProxyVerify require
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    ProxyPreserveHost On

この設定を ↑ の <VirtualHost> 内に追加するも https://wordpress.ktsys.work にアクセスすると *.ktsys.jp の証明書で通信をしているようでブラウザで「HSTSが使用されているため、現在アクセスできません」と表示されてしまう。

さて困ったぞう、と数時間悩んでいたところ他のドメインだけど同一サーバ内では個別の証明書でやれていたことを思い出す

同一物理サーバ内の名前ベースのバーチャルホストをやっていた時はおのおのの <VirtualHost> 設定内に SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile を入れてそれぞれのドメイン用の証明書で正しく通信が出来ていた。

これだ!

ちょっとイレギュラーであまり気持ちいいやり方ではないのだけれどしゃーない、もうあまり時間取れないからとりあえず想定している動作すればいいやと

<VirtualHost *:443>
    ServerName ktsys.work
    ServerAlias wordpress.ktsys.work
    ServerAlias *.ktsys.work
    ProxyPass / http://192.168.1.23/
    ProxyPassReverse / http://192.168.1.23/
    SSLCertificateFile /Users/hoge/work/ktsys.work/cert.pem
    SSLCertificateKeyFile /Users/hoge/work/ktsys.work/key.pem
    SSLCertificateChainFile /Users/hoge/work/ktsys.work/chain.pem
</VirtualHost>

三行追加で証明書ファイルを指定。これらはバックエンド鯖内にある docker nginx-proxy + letsencrypt で自動生成したファイルをプロキシ鯖にコピーしてきたもの。

実に気持ち悪い

とりあえずこれで欲しかった環境になったのでまた時間出来た時にドライバーでこねくり回してみようと思う

to be continued

By 🐬とぅとと🐬

わしです、とぅととです。アニメ ニュース・天気実況、自炊、家庭菜園、多少の鉄分 縄文文明研究家(自称) WEB系SE *Unityも少しやってる C# BayFM78 聴く 2014年〜千葉県民 2005 Demio 乗り 急性心筋梗塞をやっちまった(2020年02月) その後→ ねんがんの りもうとわあく を てにいれた

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です