Я пытаюсь установить связь клиента с сервером через SSL с помощью самоподписанных сертификатов. На стороне сервера я добавил CN = при создании сертификата. Мой клиент связывается с использованием libCurl с CURLOPT_SSL_VERIFYPEER, установленным в 1 и CURLOPT_SSL_VERIFYHOST, который установлен в 2.Проблема с сертификатом SSL: запись CN не совпадает с именем хоста в URL-адресе
Когда клиент пытается отправить запрос с использованием полного доменного имени сервера в URL-адресе, он отлично работает. но если клиент использует IP-адрес, я получаю сообщение об ошибке как «SSL: имя субъекта сертификата» не соответствует имени целевого хоста »« Я понял, что проблема: «Имя хоста, используемое в URL-адресе, должно совпадать с именем субъекта», приведенным в сертификат.
Но каково решение этой проблемы? Клиент должен иметь возможность подключения с использованием IP-адреса/короткого имени хоста/FQDN. Я попытался добавить несколько CN записей (для полного доменного имени и IP) в сертификат, но это не сработало.
DNS-имена должны * не * быть помещены в общее имя (CN). Это поведение устарело и для IETF, и для CA/Browser Forums. Вместо этого используйте дружественное имя в CN, потому что оно отображается пользователю. Имена DNS должны быть помещены в альтернативное имя субъекта (SAN). Это определяется как IETF, так и форумами CA/B. * Примечание *: форум CA/Browser важен, потому что браузеры и центры сертификации собираются вместе и определяют политику. Браузеры следуют за форумом CA/B и не следуют рекомендациям IETF. – jww