Gravatar is an online service that allows Internet users to maintain a consistent image on most websites.

Иван Колдаев

2

Почему сертификат не работает для моего IP-адреса в Apache?

У меня есть сайт на Apache, и я пытаюсь настроить для него SSL-сертификат. Когда я захожу на https://192.168.1.1 в Firefox, получаю ошибку:

    Websites prove their identity via certificates. Firefox does not trust this site because it uses a certificate that is not valid for 192.168.1.1. The certificate is only valid for 192.168.1.1.
Error code: SSL_ERROR_BAD_CERT_DOMAIN

Я создал сертификат для IP 192.168.1.1 через OpenSSL с использованием конфигурационного файла:

    [req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = NY
L = New York
O = Example
OU = IT
CN = 192.168.1.1
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = 192.168.1.1

Я настроил Apache с этим сертификатом. Но при попытке зайти по IP в браузере, Firefox не доверяет сертификату. Что я делаю не так?

Ответы

  • Gravatar is an online service that allows Internet users to maintain a consistent image on most websites.

    Михаил Кузьмин

    (Изменено)

    В случае указания IP, а не DNS браузер будет доверять сертификату только потому, что ты вручную добавил корневой сертификат на своём устройстве. Сертификаты обычно создаются для доменных имён, а не для IP-адресов, поэтому браузеры на других устройствах могут не доверять таким сертификатам по умолчанию, даже если ты правильно укажешь IP в subjectAltName. Такой сертификат для IP-адреса не будет «полностью доверенным» на других устройствах, если они не настроены так же, как твоё.

    1
  • Gravatar is an online service that allows Internet users to maintain a consistent image on most websites.

    Антон Сидоров

    (Изменено)

    Твоя ошибка в том, что для IP-адреса нужно указывать его в секции subjectAltName как IP, а не как DNS. Вот правильная конфигурация:

        [alt_names]
    IP.1 = 192.168.1.1

    Сертификат для IP-адреса должен быть указан через IP.1, а не DNS.1. Это должно решить проблему с ошибкой в браузере.

    3