2014-01-30 16 views
1

我必須通過openssl向https站點發出一些請求。在瀏覽器中完全沒有問題,這是一個簡單的GET請求,沒有任何cookie,我通過小提琴手看它。我的問題是我必須通過openssl發出這個請求,並且等待時間過長,然後我得到一個空的響應。openssl無法正常工作,但在瀏覽器中它的確如此

它看起來像:

(cat <REQUEST>; sleep 5) | openssl s_client -quiet -connect <HOST>:<PORT> > <variable> 

我有很多https網站,僅其中一個導致此。可能是什麼問題呢?

+1

您的openssl客戶端的CA可能已過期,或者他們無法驗證主機的Web服務器中的證書。你從哪個操作系統運行openssl?它是一箇舊的操作系統? – Rico

回答

1

確保您發送瀏覽器所有的標題。特別是,RefererAccept可能在其中發揮作用(和Cookie,但你說沒有cookie)。

除此之外,服務器的SSL證書可能無法被客戶驗證。瀏覽器通常更寬容,所以你的請求仍然會成功。如果您可以將您的請求轉換爲wget命令(即wget https://host:port/URL),如果證書有問題,它會報告類似「無法驗證<主機>的證書」。如果您嘗試與wget --no-check-certificate https://host:port/URL同樣的請求並且成功,您將知道證書是問題所在。

相關問題