тл; др: Будут ли старые версии boto, которые не включают сертификаты служб доверия amazon, устареют через несколько месяцев, когда amazon перейдет с DigiCert на службы Amazon Trust Services?
ЦС Amazon для S3 изменится с DigiCert на Amazon Trust Services через несколько месяцев. Они говорят, что клиенты должны доверять корневым сертификатам Amazon Trust Services (имея их в своем хранилище доверенных сертификатов).
curl и chrome хорошо реагируют на тестовые конечные точки AWS, которые проверяют, что все доверено должным образом, то есть корневые сертификаты находятся в хранилище доверенных сертификатов в ОС, но я должен убедиться, что Botocore 1.8.11 и boto 2.38 также доверяют. Почему они должны быть другими? из-за этого:
Пакеты SDK и CLI для .NET, Java, PHP, Go, JavaScript и C++ не объединяют сертификаты, поэтому их сертификаты исходят от базовой операционной системы.
Более поздние версии botocore и boto3 ДЕЙСТВИТЕЛЬНО имеют связанные с ними корневые сертификаты (, например, ),
Конечно, обновление — это то, что нужно делать, но в моей ситуации это очень тяжелая работа.
Связанные корневые сертификаты boto3 и botocore — это просто запасной вариант, когда корневые сертификаты отсутствуют в ОС.
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep -e "Amazon Root CA" -e "Starfield"
Должны найти корневые сертификаты, что означает, что все хорошо:
subject= /C=US/O=Amazon/CN=Amazon Root CA 1 subject= /C=US/O=Amazon/CN=Amazon Root CA 2 subject= /C=US/O=Amazon/CN=Amazon Root CA 3 subject= /C=US/O=Amazon/CN=Amazon Root CA 4 subject= /C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority subject= /C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Root Certificate Authority - G2 subject= /C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2
Да.