aws申请ssl证书的方法【该证书仅供aws】

时间:2024-11-10 07:47:01

这里先声明,过程是对的,最终没有达到目的。

原本想着申请ssl证书替代,结果发现aws证书只能给自己的服务器用

但是整套申请证书以及下载,以及使用aws控制台的过程可以参考借鉴。

===========================

起因:

腾讯云的ssl证书越来越没法用了,免费证书只能用三个月

所以想其他办法吧,想到了aws,查了一下,他的证书免费

永久免费,而且通过dns验证,还可以自动续签,这个比腾讯云方便太多太多了。

AWS Certificate Managerhttps://ap-east-1.console.aws.amazon.com/acm/home?region=ap-east-1#/welcome

aws 里面搜索 cert就能出来

这里面可以点击请求

然后申请证书

这里有两种验证,一个是dns验证,比较靠谱

最关键的是复制cname名称和cname值

然后填到腾讯云的域名解析

上图是最关键的,复制aws的名称时候,记得把最后的域名和腾讯云的对齐,最后面的小数点都是多余的,删掉。

大约过一分钟。这就完成了。

完美,据说这种方式只要主机cnma记录不删除,就可以自动续签,太方便了。这个只能一年后到期再看是不是这样了。

下来申请一个邮件验证,这个就恶心了。

邮件验证界面我就不贴了,恶心的是必须拥有这几个常用邮箱,而不能自己指定验证邮箱。

并企不能自动续订,必须到期发送验证邮件到邮箱。

邮箱里会受到验证链接,点一下就通过验证了。

验证通过,下来第二个大麻烦

在AWS Certificate Manager (ACM) 控制台中,您无法直接下载由ACM颁发的公有证书,因为AWS不提供导出公有证书和私钥的选项。这是因为公有证书的私钥是由AWS管理的,并且不会提供给用户以确保安全性。您只能在AWS服务中使用这些证书,例如在Elastic Load Balancing、Amazon CloudFront或Amazon API Gateway等AWS服务中。

但是,如果您需要将ACM颁发的公有证书用于非AWS服务,您可以采取以下步骤:

  1. 获取证书ARN:在ACM控制台中找到您的证书,并记下证书的ARN(Amazon Resource Name)。

  2. 使用AWS CLI或API:通过AWS CLI或API,您可以获取证书的详细信息,包括证书内容本身。使用get-certificate命令来检索证书详情,如下所示:

     

    bash

    aws acm get-certificate --certificate-arn arn:aws:acm:region:account-id:certificate/certificate-id

    这将返回证书的详细信息,包括证书体、证书链等,但不包括私钥。

  3. 手动复制证书内容:从CLI或API返回的结果中,您可以手动复制证书内容(包括证书体和证书链),并将其保存为PEM格式的文件。

请注意,这种方法只适用于公有证书的证书体和证书链,不包括私钥。私钥始终由AWS管理,并且不会提供给用户。因此,如果您需要在非AWS服务上使用SSL/TLS证书,您将只能使用证书的公共部分,而无法使用私钥。

官方文档也提到过

这个页面拉到最下面

在中申请公共证书 AWS Certificate Manager - AWS 证书 Managerhttps://docs.aws.amazon.com/zh_cn/acm/latest/userguide/acm-public-certificates.html

下来从aws cli下载

https://awscli.amazonaws.com/AWSCLIV2.msi

安装上面这个

cmd中对aws --version 进行验证

服务器端创建用户::

创建用户的权限策略

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "acm:DescribeCertificate",
        "acm:GetCertificate"
      ],
      "Resource": "arn:aws:acm:*:*:certificate/*"
    }
  ]
}

创建密码

配置cli::

注意区域!!!!

运行 aws configure 命令时,AWS CLI 会提示您输入一些信息以配置您的环境。以下是您需要输入的信息:

  1. AWS Access Key ID

    • 这是您的AWS账户的访问密钥ID,您可以在AWS管理控制台的IAM(Identity and Access Management)服务中找到或创建。请确保您有权限访问您需要操作的AWS资源。
  2. AWS Secret Access Key

    • 这是与上述访问密钥ID相对应的秘密访问密钥。同样,您可以在IAM服务中找到或创建。
  3. Default region name

    • 这是您默认想要操作的AWS区域。例如,如果您的资源大多在亚太东部(首尔)区域,您可以输入 ap-northeast-2。如果您不确定,可以输入 us-east-1,这是AWS的默认区域。
  4. Default output format

    • 这是CLI命令输出的格式。AWS CLI支持多种输出格式,如JSON、TEXT等。如果您不需要特别指定,可以输入 json,这是默认的输出格式。

验证配置::

aws acm describe-certificate --certificate-arn YOUR_CERTIFICATE_ARN

YOUR_CERTIFICATE_ARN是需要下载的证书arn,如果配置都正确,那么就可以看到返回json

下载证书::

  1. 获取证书(juliangyinqing.techxixi.cn.crt)

    • 可以使用AWS CL导出证书。以下是使用AWS CLI导出证书的命令示例:

      aws acm describe-certificate --certificate-arn arn:aws:acm:region:account-id:certificate/certificate-id --query 'Certificate' --output text > test.xxxxx.cn.crt
      请替换arn:aws:acm:region:account-id:certificate/certificate-id为您的证书ARN。这个命令会将证书内容保存到test.xxxx.cn.crt文件中。

证书下载完毕

只能做到这一步了。

====================================================

重点来了,这个文章再往下没法弄了,经过研究,aws的证书只有这个了,再往下部署apache就不行了,需要私钥生成证书,但是aws的私钥不公开就只能它自己用用,到此为止了,没法给自己服务器的apache用了。

抱歉各位。