Где находится центр сертификации Cargo?

Мы не можем использовать Cargo, потому что наш ИТ-отдел перехватывает весь HTTPS-трафик и подменяет сертификаты. Мне нужно добавить корпоративный корневой ЦС в список доверенных ЦС Cargo. Где файл, который Cargo использует для их хранения?


person Krum    schedule 31.07.2019    source источник
comment
Надеюсь, вы уже осознали огромную угрозу безопасности, с которой столкнулись. Есть ли у вашей компании прокси-сервер? В этом случае используйте ошибку загрузки груза ssl за прокси-сервером в Windows Передача грузов в Windows через корпоративный прокси   -  person Shepmaster    schedule 31.07.2019
comment
Нет, это не прокси. Это устройство для перехвата.   -  person Krum    schedule 31.07.2019


Ответы (1)


Я запустил strace cargo fetch в случайном проекте, и похоже, по крайней мере в Linux, cargo просто использует мои системные сертификаты:

 524 stat("/etc/pki/ca-trust/extracted/pem", 0x7ffccad52c70) = -1 ENOENT (No such file or directory)
 529 stat("/usr/local/share/cert.pem", 0x7ffccad52da0) = -1 ENOENT (No such file or directory)
 530 stat("/usr/local/share/certs.pem", 0x7ffccad52da0) = -1 ENOENT (No such file or directory)
 531 stat("/usr/local/share/certs/ca-certificates.crt", 0x7ffccad52da0) = -1 ENOENT (No such file or directory)
 532 stat("/usr/local/share/certs/ca-root-nss.crt", 0x7ffccad52da0) = -1 ENOENT (No such file or directory)
 533 stat("/usr/local/share/certs/ca-bundle.crt", 0x7ffccad52da0) = -1 ENOENT (No such file or directory)
 534 stat("/usr/local/share/CARootCertificates.pem", 0x7ffccad52da0) = -1 ENOENT (No such file or directory)
 535 stat("/usr/local/share/tls-ca-bundle.pem", 0x7ffccad52da0) = -1 ENOENT (No such file or directory)
 537 stat("/etc/ssl/cert.pem", {st_mode=S_IFREG|0444, st_size=220132, ...}) = 0
 571 openat(AT_FDCWD, "/etc/ssl/cert.pem", O_RDONLY) = 3

/etc/ssl/cert.pem содержит много сертификатов, и один из них достаточно хорош для cargo по умолчанию.

Реестр по умолчанию размещается на GitHub, который в конечном итоге подписан «DigiCert High Assurance EV Root CA», который действительно содержится в этом файле.

В некоторых дистрибутивах (хотя не знаю, насколько это стандартно) добавить сертификат в системное хранилище можно с помощью команды:

# trust anchor your-cert.crt
person mcarton    schedule 31.07.2019