上传方式

AWS侧上传HTTPS证书有两种方式

  • 使用 AWS Certificate Manager (ACM)生成,优点是免费,和aws其他服务集成性好,缺点是只能在AWS中使用
  • 上传第三方证书到AWS Identity and Access Management (IAM) 中,优点是证书生成灵活,缺点是操作麻烦。

中国区的AWS还没有ACM服务,因此只能使用IAM的方式来上传证书。

证书相关的一系列命令

  1. 证书上传命令
    如果没有certificate-chain,可以不传。

    1
    2
    3
    4
    $ aws iam upload-server-certificate --server-certificate-name ExampleCertificate
    --certificate-body file://Certificate.pem
    --certificate-chain file://CertificateChain.pem
    --private-key file://PrivateKey.pem
  2. 列出证书命令

    1
    $ aws iam list-server-certificates
  3. 获取证书信息命令

    1
    $ aws iam get-server-certificate --server-certificate-name ExampleCertificate
  4. 删除证书命令

    1
    $ aws iam delete-server-certificate --server-certificate-name ExampleCertificate

在EB中设置使用SSL证书

在EB中为ALB添加SSL证书的步骤如下:

  1. 在EB中,点击[Configuration]->[Load balancer]打开Load balancer配置页面。
  2. 点击Application Load Balancer右侧的Add listener,添加listener.
    alb_setting_in_eb.png

  3. 在Application Load Balancer Listener的添加页面中,设置如下, 再点击Add进行添加Listener.

    • Port设为443
    • Protocol选择HTTPS
    • SSL certificate中选择IAM中上传的证书
    • SSL policy可以自选,也可以留空
      add_ssl_listener_in_eb.png
  4. 回到Load balancer配置页面,可以看到Application Load Balancer部分,多了刚设置的443 HTTPS的Listener。
    并且EB会自动在Rules部分加上ALB 443端口到默认的target 80的rule, 还会在ALB所在的Security Group中自动添加允许443的inbound rules。
    alb_auto_configure_in_eb.png

  5. 最后点击右下角的Apply按钮更新配置,或点击Continue后来检查更改。

ALB中手动添加SSL证书

  1. 在EC2界面,左侧选择Load Balancers, 再选择要设置的Load Balance,下部tab切换至Listeners。
    alb_on_ec2.png

  2. 点击Add listener, 在listener添加页面中

    • Protocol : port选择 HTTPS:443
    • Default action中选择Forward to或者Redirect to一个已有的Target
    • Default SSL certificate中,选择From IAM,再选择在IAM中upload的证书。
      点击右上角Save进行保存。
      ssl_listener_setting_on_ec2.png

注意: 如果443端口不通的话,记住检查一下ALB所在的Security Group中有没有开放443端口。

Reference

留言