aws申请ssl证书的方法【该证书仅供aws】
这里先声明,过程是对的,最终没有达到目的。
原本想着申请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服务,您可以采取以下步骤:
-
获取证书ARN:在ACM控制台中找到您的证书,并记下证书的ARN(Amazon Resource Name)。
-
使用AWS CLI或API:通过AWS CLI或API,您可以获取证书的详细信息,包括证书内容本身。使用
get-certificate
命令来检索证书详情,如下所示:bash
aws acm get-certificate --certificate-arn arn:aws:acm:region:account-id:certificate/certificate-id
这将返回证书的详细信息,包括证书体、证书链等,但不包括私钥。
-
手动复制证书内容:从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 会提示您输入一些信息以配置您的环境。以下是您需要输入的信息:
-
AWS Access Key ID:
- 这是您的AWS账户的访问密钥ID,您可以在AWS管理控制台的IAM(Identity and Access Management)服务中找到或创建。请确保您有权限访问您需要操作的AWS资源。
-
AWS Secret Access Key:
- 这是与上述访问密钥ID相对应的秘密访问密钥。同样,您可以在IAM服务中找到或创建。
-
Default region name:
- 这是您默认想要操作的AWS区域。例如,如果您的资源大多在亚太东部(首尔)区域,您可以输入
ap-northeast-2
。如果您不确定,可以输入us-east-1
,这是AWS的默认区域。
- 这是您默认想要操作的AWS区域。例如,如果您的资源大多在亚太东部(首尔)区域,您可以输入
-
Default output format:
- 这是CLI命令输出的格式。AWS CLI支持多种输出格式,如JSON、TEXT等。如果您不需要特别指定,可以输入
json
,这是默认的输出格式。
- 这是CLI命令输出的格式。AWS CLI支持多种输出格式,如JSON、TEXT等。如果您不需要特别指定,可以输入
验证配置::
aws acm describe-certificate --certificate-arn YOUR_CERTIFICATE_ARN
YOUR_CERTIFICATE_ARN是需要下载的证书arn,如果配置都正确,那么就可以看到返回json
下载证书::
-
获取证书(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 CL导出证书。以下是使用AWS CLI导出证书的命令示例:
证书下载完毕
只能做到这一步了。
====================================================
重点来了,这个文章再往下没法弄了,经过研究,aws的证书只有这个了,再往下部署apache就不行了,需要私钥生成证书,但是aws的私钥不公开就只能它自己用用,到此为止了,没法给自己服务器的apache用了。
抱歉各位。