Identificar el tipo de certificado SSL para la configuración de Apache

Identificar el tipo de certificado SSL para la configuración de Apache

Tengo archivos de certificado SSL:

  • Raíz2023.crt
  • t1.crt
  • t1.pem
  • t1.pk8

en mi Apache ¿Cómo puedo determinar cuál de estos archivos debe usarse para SSLCertificateFile, SSLCertificateKeyFile y SSLCertificateChainFile, etc.?

000-default.conf:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html



        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        SSLEngine on
        SSLCertificateFile /etc/ssl/t1.crt
        SSLCertificateKeyFile /etc/ssl/t1.pem
        SSLCertificateKeyFile /etc/ssl/t1.pk8
        SSLCertificateChainFile /etc/ssl/Root2023.crt

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Intento esta configuración pero no funciona.

ACTUALIZAR:

openssl x509 -in t1.pem -text -noout
openssl x509 -in t1.crt -text -noout
has similar output like this:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 508... (0x468dc...8)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN = rcii
        Validity
            Not Before: Feb 14 07:34:00 2023 GMT
            Not After : Feb 14 07:34:00 2026 GMT
        Subject: C = IR, ST = TEH, L = TEH, CN = 172.....
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (4096 bit)
                Modulus:
                    00:c4:.....

                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment, Key Agreement
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Subject Alternative Name:
                IP Address:172.....
            Netscape Comment:
                xca certificate
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        34:bd:9

t1.pk8 tiene frase de contraseña

openssl rsa -in t1.pk8 -text -noout

producción:

Private-Key: (4096 bit, 2 primes)
modulus:
    00:c4:58:f7:e8:bf:ad:f1:f9:aa:33:e7:3c:b3:48:
publicExponent: 65537 (0x10001)
privateExponent:
    65:a0:6b:08:84:15:c3:55:e7:3b:a0:27:31:e0:74:
prime1:
    00:f2:e1:d3:4e:3f:2e:b3:69:60:cd:8c:8c:78:91:
prime2:
    00:ce:f3:bd:36:44:6e:bd:ae:65:43:62:59:8a:ec:
    af:03
exponent1:
    00:e1:cd:10:a5:ae:17:bc:b4:3b:4a:dd:5f:ba:b7:
    63:0d:e2:0b:18:93:35:8b:3c:df:4b:7e:d5:63:84:
    75
exponent2:
    1f:b9:21:21:f6:6f:7b:48:06:61:c3:eb:b1:ed:fc:
    7d
coefficient:
    37:ff:02:03:bf:37:c0:7f:6f:f8:a6:b1:51:9b:b3:
    fd:cf:fd:49:e3:c5:fb:6d:47:79:a0:0e:2d:99:50:
    eb

Respuesta1

Elmod_sslLa documentación de cada parámetro indica lo que se espera, lo que responde más o menos a su pregunta.

Llave privada

SSLCertificateKeyFileDirectiva

Descripción: Archivo de clave privada codificado en PEM del servidor

Esta directiva apunta al archivo de clave privada codificado en PEM para el servidor o al ID de clave a través de un token criptográfico configurado. Si la clave privada contenida está cifrada, el diálogo de frase de contraseña se fuerza en el momento del inicio.

Contiene t1.pk8la información requerida aquí, pero es posible que desee eliminar la contraseña para que no se le solicite cada vez que reinicie Apache:

openssl rsa -in /etc/ssl/t1.pk8 -out /etc/ssl/t1.key

El archivo resultante debería comenzar con -----BEGIN PRIVATE KEY----.

Como el archivo clave ya no está protegido con contraseña, debes protegerlo con permisos del sistema de archivos:

chown root:root /etc/ssl/t1.key
chmod 600 /etc/ssl/t1.key

cadena de certificados

SSLCertificateChainFilees obsoleto

SSLCertificateChainFilequedó obsoleto con la versión 2.4.8, cuando SSLCertificateFilese amplió para cargar también certificados de CA intermedios desde el archivo de certificado del servidor.

Esto debería explicarse por sí solo. Elimine esta directiva de su configuración por completo.

SSLCertificateFileDirectiva

Descripción: Identificador de token o archivo de datos de certificado X.509 codificado con PEM del servidor

Esta directiva apunta a un archivo con datos del certificado en formato PEM, o al identificador del certificado a través de un token criptográfico configurado. Si utiliza un archivo PEM, como mínimo, el archivo debe incluir un certificado de entidad final (hoja). - -

Los archivos también pueden incluir certificados de CA intermedios, ordenados desde la hoja hasta la raíz.

Si t1.crtestá firmado directamente por Root2023.crty Root2023.crtestá presente en la tienda de CA de los clientes, puede usarlo t1.crttal como está.

Si necesitas algunointermediocertificados, debe crear un archivo combinado que los tenga todos desde la hoja hasta la raíz. Si Root2023.crtresulta ser un archivo que contiene los certificados intermedios y ambos ya están en formato PEM, puede combinarlos con:

cat /etc/ssl/t1.crt /etc/ssl/Root2023.crt > /etc/ssl/fullchain.pem

El archivo resultante debería estructurarse así:

-----BEGIN CERTIFICATE-----
Base 64 encoded contents of the leaf certificate.
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base 64 encoded contents of an intermediate certificate.
-----END CERTIFICATE-----

Seguido de la cantidad requerida de intermediarios (y opcionalmente el certificado de CA).

Configuración

Ahora, si estas instrucciones fueran adecuadas para sus necesidades y siguiera estas instrucciones, su configuración se vería así:

    SSLEngine on
    SSLCertificateFile /etc/ssl/fullchain.pem
    SSLCertificateKeyFile /etc/ssl/t1.key

información relacionada