Назад | Перейти на главную страницу

curl на Tomato USB - проблема с SSL CA

Я установил optware и у меня есть curl. Я пытаюсь заставить его уведомить меня (через pushover) при перезагрузке роутера.

curl \
-F "token=<token goes here>" \
-F "user=<user key goes here>" \
-F "message=ASUS Router WAN Up" \
https://api.pushover.net/1/messages

Это маршрутизатор Asus RT-N16 с использованием Tomato Firmware 1.28.0000 MIPSR2-097 K26 USB Mega-VPN.

Сообщение об ошибке указывает, что это проблема с установленным центром сертификации:

url: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Итак, каков рекомендуемый способ установки пакета CA? Или я должен просто быть небезопасным (-k работает)?

Если вы действительно читаете URL в сообщении об ошибке он объяснит, почему это произошло, и какие у вас есть варианты. В итоге у вас есть два варианта:

  1. Отключите проверку сертификата, это означает, что cURL не будет проверять, что вы подключаетесь к нужному серверу, и вы можете подвергнуться атаке MITM. В этом случае это, вероятно, нормально, поэтому укажите --insecure возможность отключить проверку.
  2. Установите набор сертификатов CA, которым cURL будет доверять. Если Tomato не предоставляет пакет, вы можете скачать Пакет CA с сайта cURL (которые только что преобразованы из набора Mozilla). хранить cacert.pem где-нибудь в системе и укажите cURL на это с помощью --cacert вариант.