
Compré dos certificados PositiveSSL (por separado), uno para manager.domain.com y otro para domain.com. Originalmente solo necesitaba manager.domain.com usando SSL, pero luego necesitaba usar SSL en domain.com. Todo funciona bien con el certificado SSL para domain.manager.com, pero cuando agrego los datos del segundo certificado al archivo .pem, domain.com intenta verificar usando el certificado de domain.com y no funciona. ¿Cómo puedo tener dos certificados SSL usando la misma instancia de Stunnel? Me divierte nginx y barniz también si eso es útil.
Aquí está el archivo de configuración de stunnel y el formato de mi archivo pem. Nota: esto funcionará bien para domain.manager.com (que es el primer certificado).
cert = /etc/ssl/all.pem
debug = 5
output = /var/log/stunnel4/stunnel.log
[https]
accept = 443
connect = 80
Y el formato para all.pem. El primer certificado es para manager.domain.com (que funciona) y el segundo es para domain.com, que no funciona. (La clave privada se generó con manager.domain.com):
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkahkiG9w0BAQEFAASCBKkwggSl444AAoIBAQDz/pbylQ5Ci6ji
END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFCjCCA/gdfwIBAgIRAL9QPhnM0h2smePkZ8ToSBMwDdfgKoZIhvcNAQEFBQAw
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFCjCCA/gdfwIBAgIRAL9QPhnM0h2smePkZ8ToSBMwDdfgKoZIhvcNAQEFBQAw
-----END CERTIFICATE-----
También intenté separar los certificados y ponerlos en un CApath.
CApath = /etc/stunnel/certs/
debug = 5
output = /var/log/stunnel4/stunnel.log
[https]
accept = 443
connect = 80
yo uso los comandos
openssl x509 -hash -noout -in domain.pem
openssl x509 -hash -noout -in manager.domain.pem
para crear los archivos y colocarlos en el directorio /etc/stunnel/certs/. Pero stunnel da el siguiente error al intentar reiniciar:
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
Los archivos que me dieron para manager.domain.com son
Root CA Certificate - AddTrustExternalCARoot.crt
Intermediate CA Certificate - PositiveSSLCA2.crt
Your PositiveSSL Certificate - manager_domain_com.crt
y lo mismo para dominio.com.
¿Alguien puede ayudarme con esto?
Respuesta1
Debe utilizar TLS SNI para poder presentar dos certificados diferentes en el mismo puerto de escucha. Tenga en cuenta que algunos clientes, en particular la mayoría de los navegadores que se ejecutan en Windows XP, no son compatibles con SNI.
Vea la sni
opción en la documentación. Divida sus certificados en diferentes archivos (se utiliza la misma clave privada para ambos certificados públicos):
[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