2017-02-20 179 views
1

我已經在這裏和互聯網上做了相當數量的瀏覽,但是我無法配置我的apache來將代理https轉換爲http。但我覺得我很接近。我所遵循的所有例子似乎都適用於除我之外的所有人,我的設置非常簡單。Apache反向代理https https

<VirtualHost *:443> 
ServerName myserver 
SSLEngine On 
SSLCertificateFile /path/to/file 
SSLCertificateKeyFile /path/to/file 
SSLCertificateChainFile /path/to/file 
ProxyRequests Off 
ProxyPreserveHost On 
<Proxy *> 
    AddDefaultCharset Off 
    Order deny,allow 
    Allow from all 
</Proxy> 
ProxyPass/http://myserver:8081/ 
ProxyPassReverse/http://myserver:8081/ 

ErrorLog logs/myserver-error_log 
CustomLog logs/myserver-access_log common 
</VirtualHost> 

所以,當我去https://myserver/我希望它重定向到正在運行的Nexus該端口。

在我做SSL之前,這實際上是爲VirtualHost *:80工作的。我可以去http://myserver/,最後到達Nexus。不知道爲什麼https不工作。

實際發生的是https://myserver/轉到https://myserver並顯示一個測試index.html我已經在DocumentRoot中進行了設置。

+0

什麼是錯誤日誌或訪問日誌說? –

+0

我沒有看到太多。我對你的評論進行了第二次觀察,並且access_log顯示404試圖轉到「http:// myserver /」,error_log中有警告級別消息關於基於名稱的SSL虛擬主機僅適用於具有TLS服務器名稱的客戶端指示支持。 – Justin

+0

你可以檢查apache是​​否爲該端口服務? netstat或nmap? –

回答

1

事實證明,一些時髦的事情正在與443港口進行。

httpd正在偵聽該端口,來自另一臺機器的nmap命令顯示443打開,但由於某種原因,但是RHEL 7的虛擬機已安裝,它無法工作。

因此,我切換端口和以下是配置,最終得到我的反向代理到HTTPS到Apache和HTTP到我的Nexus回購。

Nexus返回一個帶有http鏈接的網頁,該鏈接可以獲取該頁面的內容,但我只需要一個docker守護程序的SSL,該守護程序不會詢問網頁。

Listen 8082 
<VirtualHost *:8082> 
ServerName myserver 
SSLEngine On 
SSLCertificateFile /path/to/file 
SSLCertificateKeyFile /path/to/file 
SSLCertificateChainFile /path/to/file 
ProxyRequests Off 
ProxyPreserveHost On 
<Proxy *> 
AddDefaultCharset Off 
Order deny,allow 
Allow from all 
</Proxy> 
ProxyPass/http://myserver:8081/ 
ProxyPassReverse/http://myserver:8081/ 

ErrorLog logs/myserver-error_log 
CustomLog logs/myserver-access_log common 
</VirtualHost>