Directiva SSLCertificateChainFile en desuso de Apache (AH02559)

8

Recientemente he actualizado Apache de 2.2 a 2.4 y no puedo entender cómo desaprobar una SSLCertificateChainFiledirectiva.

El error:

me@jessie:~$ sudo apache2ctl configtest 
AH02559: The SSLCertificateChainFile directive (/etc/apache2/sites-enabled/https.conf:103) is deprecated, SSLCertificateFile should be used instead
Syntax OK

Mi configuración actual:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key
SSLCertificateChainFile /etc/apache2/cert/sub.class1.server.sha2.ca.pem
SSLCACertificateFile /etc/apache2/cert/ca.pem

El certificado está firmado por StartCOM. Manual dice que ahora toda la cadena debe estar en un archivo, especificado por la SSLCertificateFiledirectiva, pero no sé qué claves y en qué orden debo concatenar a este archivo.

Neurotransmisor
fuente

Respuestas:

8

Dado que está usando esto en su configuración de apache:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key

El /etc/apache2/cert/ssl.crtarchivo debe contener

  1. certificado de, por ejemplo, tudominio.com
  2. certificado de la primera CA intermedia, firmado por la CA raíz (p. ej., la CA del servidor primario primario de StartCom Class 1)
  3. certificado de segunda CA intermedia, firmado por la primera CA intermedia (si hay una segunda CA intermedia en su cadena de certificados)

Debe colocar todos los certificados de CA intermedios en el archivo crt. Dependiendo de la cadena de certificados de su certificado, habrá un número variable de CA invocadas.

Ni siquiera necesita agregar la CA raíz, ya que tiene que estar en el almacén de confianza de cualquier cliente, de lo contrario, los clientes obtendrán una página de error, también, si la agrega a su cadena, solo será una sobrecarga adicional para establecer conexiones SSL, ya que debe transferirse para cada nueva sesión SSL. En realidad, la mayoría de los clientes también tendrán instalados certificados de CA intermedios, pero algunos no, por ejemplo, los teléfonos móviles no tienen muchos certificados de CA intermedios, por lo que definitivamente los agregaría.

El /etc/apache2/cert/ssl.keyarchivo permanecerá igual, es decir, contendrá la clave para el certificado de yourdomain.com

Fholzer
fuente
De acuerdo, si lo entendí correctamente, debería crear un archivo con lo siguiente en el orden: 1) ssl.crt; 2) sub.class1.server.sha2.ca.pem; 3) que? Explique qué certificados deben agregarse en el tercer lugar (y posiblemente más).
Neurotransmisor
Eso depende de la cadena real, es decir, el número de AC involucradas en la firma de su certificado. La cadena solo puede constar de 2 CA. por ejemplo, CA raíz y una CA intermedia. Pero puede consistir en CA raíz y más de una CA intermedia. Su archivo ssl.crt debe contener todos los certificados de CA intermedios, de arriba a abajo. Por esta razón, depende absolutamente de su caso específico cómo debe verse su ssl.crt.
fholzer
¿Cómo se puede saber qué CA participan en la firma de un certificado?
Neurotransmisor
2
Supongo que construir la cadena no es trivial para un novato. Normalmente corro openssl x509 -subject -issuer -noout -in certificate.of.yourdomain.crta ver al emisor. Luego descargo el certificado de emisión del sitio web de mi CA, en su caso: startssl.com/certs . Luego ejecute el comando en ese certificado. Repita hasta que el problema sea igual al sujeto, lo que significa que el certificado está autofirmado y es el certificado de CA raíz. agregue todos esos archivos excepto el certificado raíz de CA al ssl.crt y listo.
fholzer
Gracias por el apoyo, seguí la cadena y generé un certificado combinado. Pero por alguna razón, la prueba SSL de Qualys indica que los clientes que se conectan a mi host tienen que descargar adicionalmente el Servidor Intermedio Primario CA StartCom Class 1, que definitivamente he incluido en el certificado combinado ( captura de pantalla ). Eso es raro.
Neurotransmisor
1

Bien, finalmente lo descubrí últimamente y decidí publicar detalles en el formulario de respuesta.

Ahora StartSSL coloca el certificado en el archivo zip cuando lo recupera y hay muchos archivos incluidos allí, uno de particular interés es ApacheServer.zipun formulario compatible con Apache> 2.4. Los archivos en la carpeta Apache son:

1_root_bundle.crt
2_myhost.tld.crt

Tiene que preparar SSLCertificateFileambos certificados, pero en este orden:

cat 2_myhost.tld.crt 1_root_bundle.crt > myhost.tld_combined.crt

Entonces, en el sitio conf, será solo:

    SSLCertificateFile    /etc/apache2/cert/myhost.tld_combined.crt
    SSLCertificateKeyFile /etc/apache2/cert/myhost.tld.key

Y todo estará bien, incluso la Prueba SSL de Qualys .

Esto funciona para StartCom StartSSL, así como para los certificados de WoSign. El formato es el mismo.

Neurotransmisor
fuente