nginx與openssl的整合

這次,業務部門要切換業務,發現https業務切換到新環境以後,一直報400的錯誤。

nginx版本用的是nginx-1.7.12

openssl版本用 的是openssl-1.0.1d

失敗的ssl服務器 A  在線的SSL服務器 B

當時出錯的現象是 日誌

|[19/Jan/2016:13:26:34 +0800]|zhao.gyyx.cn|GyET /oauth2/stat.aspx HTTP/1.1|0|0.006|"400"|
|[19/Jan/2016:13:26:37 +0800]|zhao.gyyx.cn|G\x8EET /favicon.ico HTTP/1.1|0|0.006|"400"|16


發現get方法被改寫成亂碼了。然後報400錯誤。

但是,令人奇怪的是:

1,找一臺跟ssl服務器互通的linux機器,進行綁定hosts進行測試。

用curl直接抓取 就是200的返回碼,

但是用 curl -x IP:port 就是400的錯誤失敗。

2.在windows上進行綁定hosts測試,用瀏覽器打開頁面 也是400錯誤


查看nginx配置文件以及nginx的安裝編譯參數,確定ssl服務器 A B兩臺服務器的nginx.conf配置一樣。編譯參數一樣。除了ssl域名其他虛擬主機訪問都沒有問題。


開始頭疼

各種測試,重新安裝。

最後結果是 nginx編譯安裝之前把openssl make install了。

其實正常的nginx與openssl的整合過程應該是這樣的。

下載openssl的源碼包,然後解壓到指定目錄,不用編譯安裝

然後把nginx進行編譯安裝的時候,--with-openssl=/usr/local/src/openssl-1.0.1q直接指向源碼包就可以了。在nginx./configure;make;make install;的時候,就會直接把openssl進行同步的編譯了


nginx編譯安裝以後,進行ssl的配置,最後把nginx進行restart (注:reload有可能不成功)

然後再進行測試 就成功了。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章