2016-12-29 1 views
4
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 90d2c018-73d1-324b-b121-a162cf870ac0' 'https://172.17.0.1:8243/V1.0.2/stock/getNA?name=te' 

Терминала запросКак я могу разрешить ошибку «имя субъекта сертификата не совпадает с именем целевого хоста»?

"завиток: (51) SSL: субъект сертификата имени (локальный) не соответствует целевому имени хоста '172.17.0.1' "

Howerver, после того, как Я изменил «172.17.0.1» на «localhost», он работал и получил результат.

Почему? Не где-то неправильная конфигурация? Между тем, в http_access.log нет журнала.

ответ

2

Когда ssl рукопожатие происходит, клиент проверяет сертификат сервера. В процессе проверки клиент попытается сопоставить Common Name (CN) сертификата с доменным именем в URL-адресе. если обе они будут отличаться, проверка имени хоста не удастся. В вашем случае сертификат имеет CN как локальный хост, и когда вы пытаетесь использовать ip-адрес, он терпит неудачу. При создании сертификата вы можете иметь одного хост имя/имя хоста/множественный дикие карты имя хоста в качестве значения CN

Для получения более подробной информации https://tersesystems.com/2014/03/23/fixing-hostname-verification/ https://support.dnsimple.com/articles/what-is-common-name/

+0

Затем API-интерфейс официального администратора может успешно выполнить команду curl. Я просто делаю это как официальный шаг и меняю wso2carbon.jks на файл .pem и копирую содержимое файла .pem в /etc/ssl/certs/ca-certificates.crt. Тогда то, что случилось, - это выше. Интересно, почему это не сработало, хотя они оба одинаковы. – mike

+0

Если я генерирую сертификат, в котором есть новое имя хоста, как я могу его использовать? Не так: я помещаю сертификат в ca-certification.crt и меняю сертификат .pem на jks и добавляю содержимое файла .jks к API MANAGER wso2carbon.jks? – mike

2

CN из WSO2 по умолчанию CERT в является localhost. Поэтому при отправке запросов вы должны использовать localhost как имя хоста. В противном случае проверка имени хоста не выполняется. Если вы хотите использовать любое другое имя хоста, вы должны сгенерировать сертификат с этим именем хоста, как упоминала Йена.

+0

Затем официальная консоль API может успешно выполнить команду curl. Я просто делаю это как официальный шаг и меняю wso2carbon.jks на файл .pem и копирую содержимое файла .pem в /etc/ssl/certs/ca-certificates.crt. Тогда то, что случилось, - это выше. Интересно, почему это не сработало, хотя они оба одинаковы. – mike

+0

Если я генерирую сертификат, который содержит новое имя хоста, как я могу его использовать? Не так: я помещаю сертификат в ca-certification.crt и меняю .pem cert для jks и добавьте содержимое файла .jks в API-интерфейс API MANAGER wso2carbon.jks? – mike

+0

Есть ли в любом случае, что я вызываю с IP-адресом? @Bhathiya – mike

0

Возможно, это было давно. Но у меня на самом деле была эта проблема и я получил исправление. Я надеюсь, что это поможет кому-то:

я запрос URI, как «http://some.example», но вар для HTTPS был установлен в «1»

0

Я имел эту проблему при попытке вытащить из каталога мерзавца после ввода Добавил новый ключ SSH, и мой git repo переместился. В битве Гит CN смутился. Решение для меня состояло в том, чтобы удалить каталог git и повторно клонировать его через ssh. Как намекают другие пользователи, вы не можете изменить CN сертификата веб-сайта, поэтому вам придется изменить настройку на вашем компьютере с неправильным CN или избежать использования https (и использовать ssh, как я).

Смежные вопросы