Я пытаюсь получить доступ к веб-сервису через https - это сайт той же компании, но не тот же центр обработки данных. Если я бегу:
curl --verbose -d '{"client_secret":"123abc", "client_id":"someervice"}' -H 'Content-Type: application/json' https://api.anotherdomain.com/token
Я получил:
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
Используя:
# openssl s_client -showcerts -connect api.anotherdomain.com:443
Я вижу, что у них есть самоподписанный сертификат. Что я могу предпринять, чтобы убедиться, что мой сервер может получить к нему доступ? Я думаю, мне нужно добавить их самозаверяющий сертификат в формате PEM и update-ca-trust
. Какие части файла PEM мне нужны для правильной работы?
Скачать сертификат:
openssl s_client -servername api.anotherdomain.com -connect api.anotherdomain.com:443> foo.crt
Если вы используете CentOS:
yum установить ca-сертификаты
update-ca-trust force-enable
cp foo.crt / etc / pki / ca-trust / source / anchors /
update-ca-trust экстракт
Если вы используете Debian:
sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
sudo update-ca-сертификаты