将SSL证书上载到IAM

时间:2015-03-25 12:50:26

标签: ssl amazon-web-services

我从CA(SSL)收到了4个证书:

  

根CA证书 - 123.crt

     

中级CA证书 - 456.crt

     

中级CA证书 - 789.crt

     

您的PositiveSSL证书 - 654.crt

我已经生成了circuit.pem -private key csr.pem,我获得了这些证书。

现在,我想使用

将这些证书上传到IAM
    aws iam upload-server-certificate --server-certificate-name certificate_object_name --certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file 

AWS -Working with Server Certificates

但我无法衡量哪个是我的服务器证书,以及如何上传我的所有证书。

请帮我完成上述证书的上述命令。

我试过了:

    aws iam upload-server-certificate --server-certificate-name MyServerCertificate --certificate-body file://www_advisorcircuit_com.crt --private-key file://circuit.pem --certificate-chain file://COMODORSAAddTrustCA.crt

我收到此错误:

A client error (InvalidClientTokenId) occurred when calling the UploadServerCertificate operation: The security token included in the request is invalid.

3 个答案:

答案 0 :(得分:9)

我不得不说,让它发挥作用是一个巨大的痛苦。基本上您缺少用户配置详细信息。您必须在此处使用IAM服务https://console.aws.amazon.com/iam/home在Amazon上创建用户。请注意您所在地区的网址,稍后您需要这样做。因此,创建用户,附加策略(我附加了AdministratorAccess),“创建访问密钥”,下载用户凭据并使用它们运行:

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

有关使证书安装命令生效的一些注意事项。确保文件具有可读权限....我认为我指定了664.我在所有文件上指定了.pem扩展名...我相信AWS更喜欢旧的学校风格的密钥文件,所以我必须运行

openssl rsa -in my_key.key -text > new_key.pem  

答案 1 :(得分:3)

另外一个提示(因为那件事发生在我身上)

运行echo $AWS_ACCESS_KEY_IDecho $AWS_SECRET_ACCESS_KEY以检查是否设置了这些ENV变量。

无论传递给aws configure的是什么,ENV变量都会覆盖它。

Configuration Settings and Precedence

答案 2 :(得分:0)

是的,即使您已配置了对用户的所有IAM访问,然后尝试使用其访问密钥上载证书,这也很棘手。

我多次遇到这个问题。这是我解决的方法。

  • 当用户不需要IAM访问权限(例如上载服务器证书等)时->您需要确保该用户具有正确的访问权限,也许在为用户提供完全IAM访问权限后尝试。
  • 当然,该区域和其他用户详细信息应该与前面的答案中所讨论的一样正确。
  • 正在尝试使用较旧的会话终端(该终端运行了24小时以上)->重新启动终端,然后尝试相同的命令。是的,我两次观察到此问题。我只是重新启动了终端并执行了相同的命令,它就起作用了。

具有绝对路径的命令:

*aws iam upload-server-certificate --server-certificate-name mycertificate --certificate-body file:///Users/raushan/Downloads/com/certificate.pem --private-key file:///Users/raushan/Downloads/com/private_key.pem --certificate-chain file:///Users/raushan/Downloads/com/CertChain.pem*