Я пытаюсь импортировать некоторые сертификаты ssl в формате PEM в AWS ACM через aws cli. Сертификаты поступают из установки nginx при попытке импортировать их с помощью следующей команды:
aws acm import-certificate --certificate ssl.website.com.crt --private-key ssl.website.com.key --region us-east-2 --profile default
Я получаю такую ошибку:
An error occurred (ValidationException) when calling the ImportCertificate operation: The certificate field contains more than one certificate. You can specify only one certificate in this field.
Я не эксперт в openssl, но AFAICS есть только один сертификат в файле pem, есть только один раздел BEGIN / END CERTIFICATE. Я нашел эту команду на этом сообщение stackoverflow чтобы распечатать сертификаты в файле pem, и я вижу только один сертификат в его выводе:
openssl crl2pkcs7 -nocrl -certfile ssl.website.com.crt | openssl pkcs7 -print_certs -noout
subject=OU = Domain Control Validated, CN = website.com
issuer=C = US, ST = Arizona, L = Scottsdale, O = "GoDaddy.com, Inc.", OU = http://certs.godaddy.com/repository/, CN = Go Daddy Secure Certificate Authority - G2
Так почему же ACM отклоняет этот сертификат? или я (очень вероятно) выполняю свои проверки неправильно, и в этом pem-файле действительно есть второй сертификат?
Решив это, вы должны префикс значения всех параметров с помощью 'file: //', например:
aws acm import-certificate --certificate file://ssl.website.com.crt --private-key file://ssl.website.com.key --certificate-chain file://ssl.website.com.ca --region us-east-2 --profile default
Я следил эта документация, которая не упоминает об этом.