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
SSLCertificateKeyFile
DirectivaDescripció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.pk8
la 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
SSLCertificateChainFile
es obsoleto
SSLCertificateChainFile
quedó obsoleto con la versión 2.4.8, cuandoSSLCertificateFile
se 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.
SSLCertificateFile
DirectivaDescripció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.crt
está firmado directamente por Root2023.crt
y Root2023.crt
está presente en la tienda de CA de los clientes, puede usarlo t1.crt
tal como está.
Si necesitas algunointermediocertificados, debe crear un archivo combinado que los tenga todos desde la hoja hasta la raíz. Si Root2023.crt
resulta 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