SSL证书生成
SSL证书生成
iamxunacme阿里云篇
1. 证书类型
- 目前主流的SSL证书主要分为DV SSL(域名型) 、 OV SSL(组织型) 、EV SSL(增强型)。
- DV、OV、EV证书在浏览器中显示的区别
DV类型仅在浏览器显示一个小锁,OV和EV类型证书都包含了企业名称信息,但是,EV证书采用了更加严格的认证标准,浏览器在访问时,会在地址栏显示公司名称,地址栏变成绿色。绿的更加让人信任。
2. ACME协议
ACME全称The Automatic Certificate Management Environment,而acme.sh这个库,则能够在Linux上实现如下功能:
- 自动向Let’s Encrypt申请证书;
- 自动调用各大云平台的api接口实现TXT解析配置;
- 证书下发后自动部署到nginx;
- 利用定时器,每60天自动更新证书,并完成自动部署。
3. 配置证书
3.1 安装acme.sh
1 | curl https://get.acme.sh | sh |
这个自动安装过程完成了以下几个步骤:
- 拷贝sh脚本到~/.acme.sh/
- 创建alias别名acme.sh=~/.acme.sh/acme.sh
(
source ~/.bashrc
一下) - 启动定时器 . 可以通过
crontab -l
查看
3.2 dns验证并安装部署
acme.sh 实现了 acme 协议支持的所有验证协议. 一般有两种方式验证: http 和 dns 验证. 接下来我们说下 dns的验证.
去阿里的控制台找到Ali_Key, Ali_Secret, 执行下面命名
1
2export Ali_Key="xx"
export Ali_Secret="xx"生成泛域名证书
1
acme.sh --issue --dns dns_ali -d imaxun.com -d *.imaxun.com
在
~/.acme
文件里生成了*.imaxun.com
文件夹配置nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16server {
listen 80 default_server;
listen [::]:80 default_server;
rewrite ^ https://$http_host$request_uri? permanent; #https跳转到https,永久重定向
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate "/etc/nginx/ssl/fullchain.cer";
ssl_certificate_key "/etc/nginx/ssl/*.imaxun.com.key";
root /home/levonfly/www;
index index.html;
}安装证书
1
2
3
4sudo ./acme.sh --installcert -d *.imaxun.com \
--key-file /etc/nginx/ssl/*.imaxun.com.key \
--fullchain-file /etc/nginx/ssl/fullchain.cer \
--reloadcmd "service nginx force-reload"- 这里用的是
service nginx force-reload
, 不是service nginx reload
, 据测试,reload
并不会重新加载证书, 所以用的force-reload
- nginx 的配置
ssl_certificate
使用/etc/nginx/ssl/fullchain.cer
,而非/etc/nginx/ssl/<domain>.cer
,否则 SSL Labs 的测试会报Chain issues Incomplete
错误。
- 这里用的是
4. docker生成证书
1 |
|