SSL 憑證伺服器名稱解析
在 SSL 憑證中,伺服器名稱主要根據主題備用名稱 (SAN) 欄位進行解析。在大多數情況下,瀏覽器使用 SAN 來驗證它們所連接的網站的身份。然而,基於 Java 的應用程式似乎有不同的行為,完全依賴 SAN 進行伺服器名稱驗證。
為什麼有差別?
RFC 2818 定義瀏覽器可以使用通用名稱 (CN) 或 SAN 欄位進行伺服器名稱驗證。 RFC 6125 後來棄用了 CN,並建議專門使用 SAN。 Java 應用程式通常遵守 RFC 6125,而某些瀏覽器可能會因為相容性原因而接受 CN。
使用 Keytool 新增備用名稱
Keytool 允許將 SAN 新增至 SSL使用「-ext」選項的憑證。可以使用以下指令新增備用名稱:
-ext san=dns:www.example.com -ext san=ip:10.0.0.1
我可以使用 OpenSSL 取代嗎?
是的,OpenSSL 也可以用來建立 SSL 憑證SAN。為此,請如下修改「openssl.cnf」設定檔:
[req] req_extensions = v3_req [ v3_req ] subjectAltName=IP:10.0.0.1 # or subjectAltName=DNS:www.example.com
或者,將環境變數 OPENSSL_CONF 設定為修改後的「openssl.cnf」檔案的位置。
以上是Java 應用程式和瀏覽器在 SSL 伺服器名稱解析方面有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!