我有兩個相同的域,由虛擬主機site.com
和additional.com
提供服務。我只有第一個SSL證書,並不真正需要另一個SSL證書。當用戶試圖登錄,我做了一個永久重定向:Nginx重定向到SSL上的主域
server {
listen 443;
server_name additional.com;
rewrite ^/(.*) https://site.com permanent;
}
...
server {
listen 80;
server_name site.com additional.com;
root /home/site/production/public;
location/{
...
}
}
server {
listen 443;
server_name site.com;
ssl on;
...
}
而且失敗了,因爲我得到的SSL流量代理到上行服務器,它不能處理它,因爲它只會談論HTTP並且有SSL23_GET_SERVER_HELLO:unknown protocol
(對於Chrome; Firefix和curl具有稍微不同的錯誤消息)。 因此,我不得不將其更改爲(通知HTTP,而不是HTTPS這裏):
server {
listen 443;
server_name additional.com;
rewrite ^/(.*) http://site.com permanent;
}
錯誤不再出現,但會/登錄頁面時(應該是安全的,上行重定向到HTTPS),它不是重寫,說明證書無效。如果您確認安全性異常,則系統會將您重定向到site.com
着陸頁,並且需要第二次點擊login
鏈接。
如何設置從https://additional.com/login
重定向到正確指向?
不知道爲什麼這個話題被關閉。這裏有一堆nginx配置相關的問題(參見右邊的「相關」部分)。解決方案並不簡單,我傾向於認爲在這裏分享是個好主意。如果在寫出問題的方式方面存在任何具體問題,請讓我知道或隨意更改。 – 2013-04-15 11:49:05