我正在使用openssl s_client -showcerts -connect test.abc.com:443 -state -debug來檢查服務器證書。服務器正在使用nginx。但是,當我要求上面的openssl顯示服務器證書爲* .xyz.com。我想知道openssl在哪裏獲得這個作爲服務器證書。操作系統是Linux。在/ etc/pki/tls中檢入,但openssl作爲服務器證書讀取的證書不在那裏。而nginx配置指向abc.com的正確證書。此外,如果我使用瀏覽器訪問正確的證書顯示。這隻會在openssl中發生。 。:(Openssl在瀏覽器正確顯示時顯示不同的服務器證書
4
A
回答
4
服務器發出一個永久重定向到ethornetworks.com
要看到它,第一個問題您s_client
命令:
$ openssl s_client -CAfile AddTrustExternalCARoot.crt -connect apitest.ethormapp.com:443
CONNECTED(00000003)
depth=4 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=3 C = US, ST = UT, L = Salt Lake City, O = The USERTRUST Network, OU = http://www.usertrust.com, CN = UTN - DATACorp SGC
verify return:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = EssentialSSL CA
verify return:1
depth=0 OU = Domain Control Validated, OU = EssentialSSL Wildcard, CN = *.ethornetworks.com
verify return:1
...
在最底層,你得到的結果驗證後,進入GET/HTTP/1.0
命令按RETURN兩次:
...
Start Time: 1390985154
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
GET/HTTP/1.0
HTTP/1.1 301 Moved Permanently
Server: nginx/1.4.4
Date: Wed, 29 Jan 2014 08:46:01 GMT
Content-Type: text/html
Content-Length: 184
Connection: close
Location: https://www.ethornetworks.com/
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.4.4</center>
</body>
</html>
closed
$
如果你跟隨重定向,那麼你會得到預期的結果:
$ openssl s_client -CAfile AddTrustExternalCARoot.crt -connect www.ethornetworks.com:443
CONNECTED(00000003)
depth=4 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
0 s:/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.ethornetworks.com
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=EssentialSSL CA
1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=EssentialSSL CA
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO Certification Authority
...
最後,您可以使用AddTrust External CA Root確保鏈按預期進行驗證。沒有它和-CAfile
選項,s_client
將報告19 (self signed certificate in certificate chain)
。
3
有一個SNI問題與OpenSSL的,請嘗試使用以下命令:
openssl s_client -showcerts -connect www.example.com:443 -servername www.example.com </dev/null
加入根據this article -servername應該把它清除掉。
相關問題
- 1. opennssl s_client顯示錯誤的證書:瀏覽器顯示正確
- 2. 瀏覽器圖像顯示不正確
- 3. 溢出隱藏在不同瀏覽器中顯示不正確
- 4. 如何不顯示瀏覽器書籤
- 5. 在瀏覽器中顯示不同登錄時顯示。導軌
- 6. 不顯示在瀏覽器
- 7. IE瀏覽器邊緣瀏覽器PNG不能正常顯示,但在Mozilla瀏覽器和Chrome顯示正常
- 8. Struts的JSP頁面顯示不正確,它顯示在瀏覽器
- 9. Python 2.7中的Web服務器:瀏覽器不顯示頁面
- 10. 在瀏覽器中顯示爲net :: ERR_CERT_AUTHORITY_INVALID的StartSSL SSL證書
- 11. uiwebview在Safari瀏覽器中顯示不正確的PDF
- 12. 在IE瀏覽器中顯示不正確的CSS-li元素
- 13. FPDF生成的PDF在瀏覽器中顯示不正確
- 14. R/ShinyApp不plot_ly顯示瀏覽器,但只顯示在瀏覽器窗格中
- 15. 重音字符不能正確顯示在瀏覽器
- 16. htmlspecialchars在瀏覽器中不能正確顯示
- 17. 印地語不是在Chrome瀏覽器中正確顯示
- 18. intl-tel-input在Chrome瀏覽器上顯示不正確
- 19. 當從本地機器瀏覽器中查看時,網頁顯示與從服務器瀏覽器中查看時的顯示不同
- 20. 相同的內容不顯示在不同的瀏覽器
- 21. Javascript在不同的瀏覽器中顯示不同的大小?
- 22. Safari瀏覽器會顯示谷歌的字體不正確
- 23. eBay賣家的頁面顯示不正確(谷歌瀏覽器)
- 24. 使用HttpResponseRedirect,但瀏覽器不顯示正確的URL
- 25. Svcutil.exe元數據顯示瀏覽器中的路徑不正確
- 26. 圖像不顯示正確的瀏覽器
- 27. Javascript在火狐瀏覽器中正確顯示,但在Chrome中顯示NaN
- 28. 當在ASP.NET中上傳到服務器時,瀏覽器中不顯示圖像
- 29. 如何讓我的iFrame在不同瀏覽器上顯示正確的高度
- 30. 從不同的服務器顯示PDF
您能否提供瀏覽器中使用的URL和OpenSSL命令中使用的服務器?另外,您使用的是哪種版本的OpenSSL(openssl-1.0.2添加了名稱檢查和驗證,並且可能存在某些已被排除在外的情況)。 – jww
https://apitest.ethormapp.com和OpenSSL的版本是OpenSSL 1.0.1e-fips 2013年2月11日 – dmn