Определите тип сертификата SSL для конфигурации Apache

Определите тип сертификата SSL для конфигурации Apache

У меня есть файлы SSL-сертификатов:

  • Root2023.crt
  • t1.crt
  • t1.pem
  • т1.пк8

на моем Apache Как мне определить, какой из этих файлов следует использовать для SSLCertificateFile, SSLCertificateKeyFile и SSLCertificateChainFile или т. д.,

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>

Я пробую эту конфигурацию, но она не работает.

ОБНОВЛЯТЬ:

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 имеет парольную фразу

openssl rsa -in t1.pk8 -text -noout

выход:

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

решение1

Themod_sslдокументация по каждому параметру сообщает, что ожидается, что более или менее отвечает на ваш вопрос.

Закрытый ключ

SSLCertificateKeyFileДиректива

Описание: Файл закрытого ключа сервера в формате PEM

Эта директива указывает на файл закрытого ключа в кодировке PEM для сервера или идентификатор ключа через настроенный криптографический токен. Если содержащийся закрытый ключ зашифрован, диалоговое окно с парольной фразой принудительно запускается во время запуска.

Здесь содержится t1.pk8необходимая информация, но вы можете удалить пароль, чтобы он не запрашивался каждый раз при перезапуске Apache:

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

Полученный файл должен начинаться с -----BEGIN PRIVATE KEY----.

Поскольку файл ключа больше не защищен паролем, его следует защитить с помощью разрешений файловой системы:

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

Цепочка сертификатов

SSLCertificateChainFileне рекомендуется

SSLCertificateChainFileустарел с версии 2.4.8, когда она SSLCertificateFileбыла расширена и теперь может также загружать промежуточные сертификаты CA из файла сертификатов сервера.

Это должно быть понятно само собой. Удалите эту директиву из вашей конфигурации.

SSLCertificateFileДиректива

Описание: Файл данных сертификата X.509 сервера, закодированный в PEM, или идентификатор токена

Эта директива указывает на файл с данными сертификата в формате PEM или идентификатор сертификата через настроенный криптографический токен. При использовании файла PEM, как минимум, файл должен включать сертификат конечного объекта (лист). - -

Файлы также могут включать промежуточные сертификаты CA, отсортированные от листа к корню.

Если ваш t1.crtсертификат подписан непосредственно Root2023.crtи Root2023.crtприсутствует в хранилище CA на клиентах, вы можете использовать его t1.crtкак есть.

Если вам что-то нужносреднийсертификаты, вы должны создать объединенный файл, содержащий их все от листа до корня. Если файл Root2023.crtсодержит промежуточный сертификат(ы) и оба уже в формате PEM, вы можете объединить их с помощью:

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

Полученный файл должен иметь следующую структуру:

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

Далее следует необходимое количество промежуточных документов (и опционально сертификат CA).

Конфигурация

Итак, если эти инструкции соответствуют вашим потребностям и вы им следовали, ваша конфигурация будет выглядеть следующим образом:

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

Связанный контент