2015-10-15 135 views
1

自當指定主題備用名稱有沒有辦法獲得的.crt和.key文件與使用者備用名稱設置?我配置代理與OpenSSL的.CRT和.KEY該命令生成簽名證書

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout proxy.key -out proxy.crt 

然後我的貓.KEY和.CRT得到一個。質子交換膜,並使用在客戶端生成。 這個證書工作正常,確保HTTPS連接,但我得到一個警告,主題備用名稱未在證書中設置。在另一個客戶端中,我使用的警告實際上是一個終止連接的錯誤。

這裏的解決方案https://security.stackexchange.com/a/91556給了我一個.csr,我將其重命名爲我需要的.crt,並且當我將此與客戶端一起使用時,https連接在錯誤的ssl證書上失敗。

+0

的可能的複製[如何創建使用OpenSSL自簽名證書?(http://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl) – jww

回答

2

有沒有辦法讓主題替代名稱設置的.crt和.key文件?

是的,但你不能在命令行中做到這一點。你必須使用一個CONF文件。

對於通過conf文件的SAN設置,見How do you sign Certificate Signing Request with your Certification AuthorityHow to create a self-signed certificate with openssl?。兩個程序都包含SA​​N。

+0

JWW,不知何故,當我執行的第二個鏈接的指示你送我,我看看,我現在已經在我的.CRT一個SAN領域這是偉大的,但是當我的貓,他們鍵PEM,該證書在我的客戶端使用我得到一個'SSL:CERTIFICATE_VERIFY_FAILED'。如果我做同樣的確切openssl證書生成,而是使用默認的ubuntu openssl.cnf我得到了一個成功的連接,但警告'證書沒有'subjectAltName''。因此,添加SAN的某些操作會導致驗證失敗。 –

+0

@HamzehAlsalhi - 用戶代理是什麼?這是一個瀏覽器嗎?或者像's_client','wget'或'cURL'這樣的命令行工具? – jww

+0

Python請求是我正在測試與哪個給我的SAN警告,Java HttpsURLConnection是最終目標,但是這個客戶端錯誤在沒有SAN而不是警告。 –