Назад | Перейти на главную страницу

Несколько сертификатов SSL с Stunnel

Я приобрел два сертификата PositiveSSL (отдельно), один для manager.domain.com, а другой - для domain.com. Первоначально мне нужно было использовать только manager.domain.com с использованием SSL, но потом мне нужно было использовать SSL на domain.com. Все работает нормально с одним сертификатом SSL для domain.manager.com, но когда я добавляю данные второго сертификата в файл .pem, domain.com пытается проверить с помощью сертификата domain.com, и это не работает. Как я могу получить два ssl-сертификата, используя один и тот же экземпляр stunnel? Развлекаю 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