記事一覧 > それ図解で。・・・tohokuaikiのチラシの裏 > ApacheのProxyをかます途中でBasic認証を入れてConfluenceにアクセスさせようとしたら失敗した件
ApacheのProxyをかます途中でBasic認証を入れてConfluenceにアクセスさせようとしたら失敗した件
- 2018/4/16 18:39
- それ図解で。・・・tohokuaikiのチラシの裏 in confluence
よくある1サーバーでConfluenceを複数稼働させたい場合のリバースProxy設定ですね。
こんな感じ。
あるいは、iptablesで無駄にポートを開けたくない場合とか。
で、内輪向けのConfluenceなんで、Basic認証をかければゼロデイアタックとかも多少は防げるんじゃないかって思ってBasic認証つけたかったんです。
Basic認証は通るけど、ConfluenceでAuthエラー
余裕じゃん・・と思ってこんな感じでProxy設定にBasic認証の設定をかけたわけです。
<VirtualHost *:80> <Location /> Order deny,allow Allow from all AuthType Basic AuthName "Authentication" AuthUserFile /etc/apache2/htpasswd Require valid-user </Location> ProxyTimeout 8000 ProxyRequests Off ProxyPreserveHost On SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 ProxyPass / http://localhost:8090/ retry=1 acquire=3000 timeout=600 Keepalive=On ProxyPassReverse / http://localhost:8090/ </VirtualHost>
すると、こんなエラーが出る。
HTTPステータス 401 - Basic Authentication Failure - Reason : AUTHENTICATION_DENIED type ステータスレポート メッセージ Basic Authentication Failure - Reason : AUTHENTICATION_DENIED 説明 This request requires HTTP authentication. Apache Tomcat/8.0.50
なんでTomcat側でエラーが出るんだ????
と思い、Tomcat使ってるのはConfluenceなのでこちら側を疑う。Confluenceで一旦ログイン後に、ApacheのBasic認証をつけるとこのエラーは出ない。
ということは、Confluenceは
となっているのではないか???
余計なことしてほしくないなぁ…と思い、そのAuthenticateをしているだろうプラグインを探す。
なんとなくこいつっぽいなーって思い、「無効」にしたが全然だめだった。
Confファイルを探すもなんか見つからない…。
ということで、Apache側で設定
だったら、Proxyする際にAuthenticationヘッダを送らなければいいんじゃんって思って、Apacheにmod_headersを導入
# a2enmod headers
した後に、apache.conf(debianなんでsites-enables内だけど)を書き換えて
RequestHeader unset Authorization
を追加。
すると問題なくConfluence側がBasic認証をやめてくれた。
Confluence、REST and os_authTypeとか読むとquery stringsにos_authType=basicって入れないとBasic認証ヘッダをスルーしてくれそうなんだけどな。ま、いいや。。