Ssl

使用 Stunnel 的多個 SSL 證書

  • October 20, 2012

我已經購買了兩個 PositiveSSL 證書(單獨),一個用於 manager.domain.com,另一個用於 domain.com。最初我只需要使用 SSL 的 manager.domain.com,但我需要在 domain.com 上使用 SSL。使用 domain.manager.com 的一個 SSL 證書一切正常,但是當我將第二個證書數據添加到 .pem 文件時,domain.com 嘗試使用 domain.com 的證書進行驗證,但它不起作用。如何使用相同的 stunnel 實例獲得兩個 ssl 證書?我很有趣 nginx,如果有用的話,我也會用清漆。

這是 stunnel 配置文件,以及我的 pem 文件的格式。注意 - 這適用於 domain.manager.com (這是第一個證書)。

cert = /etc/ssl/all.pem
debug = 5
output = /var/log/stunnel4/stunnel.log

[https]
accept  = 443
connect = 80

以及 all.pem 的格式。第一個證書適用於 manager.domain.com(有效),第二個證書適用於 domain.com,但無效。(私鑰是使用 manager.domain.com 生成的):

-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkahkiG9w0BAQEFAASCBKkwggSl444AAoIBAQDz/pbylQ5Ci6ji
END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFCjCCA/gdfwIBAgIRAL9QPhnM0h2smePkZ8ToSBMwDdfgKoZIhvcNAQEFBQAw
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFCjCCA/gdfwIBAgIRAL9QPhnM0h2smePkZ8ToSBMwDdfgKoZIhvcNAQEFBQAw
-----END CERTIFICATE-----

我也嘗試過分離證書並將它們放入 CApath

CApath = /etc/stunnel/certs/
debug = 5
output = /var/log/stunnel4/stunnel.log

[https]
accept  = 443
connect = 80

我使用命令

openssl x509 -hash -noout -in domain.pem
openssl x509 -hash -noout -in manager.domain.pem

創建要放入目錄 /etc/stunnel/certs/ 的文件。但是 stunnel 在嘗試重新啟動時會出現以下錯誤:

Restarting SSL tunnels: No limit detected for the number of clients
signal_pipe: FD=3 allocated (non-blocking mode)
signal_pipe: FD=4 allocated (non-blocking mode)
stunnel 4.42 on i686-pc-linux-gnu platform
Compiled with OpenSSL 1.0.0e 6 Sep 2011
Running  with OpenSSL 1.0.1 14 Mar 2012
Update OpenSSL shared libraries or rebuild stunnel
Threading:PTHREAD SSL:ENGINE Auth:LIBWRAP Sockets:POLL,IPv6
Reading configuration from file /etc/stunnel/https.conf
PRNG seeded successfully
Line 8: End of section https: SSL server needs a certificate
str_stats: 53 block(s), 3974 byte(s)
[Failed: /etc/stunnel/https.conf]
You should check that you have specified the pid= in you configuration file

給我的 manager.domain.com 文件是

Root CA Certificate - AddTrustExternalCARoot.crt
Intermediate CA Certificate - PositiveSSLCA2.crt
Your PositiveSSL Certificate - manager_domain_com.crt

domain.com 也是如此。

有人可以幫我嗎?

您需要使用 TLS SNI 才能在同一個偵聽埠上提供兩個不同的證書。請注意,某些客戶端,尤其是在 Windows XP 下執行的大多數瀏覽器,不支持 SNI。

請參閱sni文件中的選項。將您的證書拆分為不同的文件(兩個公共證書使用相同的私鑰):

[https]
cert = /etc/ssl/domain.com.pem
accept  = 443
connect = 80

[domain]
sni = https:domain.com
sni = https:www.domain.com
cert = /etc/ssl/domain.com.pem
connect = 80

[manager]
sni = https:manager.domain.com
cert = /etc/ssl/manager.domain.com.pem
connect = 80

引用自:https://serverfault.com/questions/440225