安装acme.sh
使用命令:curl https://get.acme.sh | sh
[root@******** ~]# curl https://get.acme.sh | sh
acme.sh默认安装到了当前家目录。
[root@******** ~]# cd .acme.sh/
[root@******** .acme.sh]# ll
total 236
-rw-r--r-- 1 root root 353 Dec 25 20:07 account.conf
-rwxr-xr-x 1 root root 194998 Dec 25 20:07 acme.sh
-rw-r--r-- 1 root root 78 Dec 25 17:08 acme.sh.csh
-rw-r--r-- 1 root root 78 Dec 25 17:08 acme.sh.env
drwxr-xr-x 3 root root 4096 Dec 25 17:22 ca
drwxr-xr-x 2 root root 4096 Dec 25 20:07 deploy
drwxr-xr-x 2 root root 4096 Dec 25 20:07 dnsapi
-rw-r--r-- 1 root root 2723 Dec 25 20:07 http.header
此次安装,会自动在crontab创建定时任务。
[root@********* ~]# crontab -l
15 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
添加自动DNS验证
登陆阿里云,鼠标放在头像上,就可以看到accesskey管理
提示使用子用户Accesskey,点击:开始使用子用户Accesskey
新建用户,输入信息,点击确定;
记住AccessKeyID和AccessKeySecret
给用户添加权限:管理云解析(DNS)的权限
ACME配置
导入API信息到acme.sh,运行命令
export Ali_Key="1234"
export Ali_Secret="sADDsdasdgdsf"
申请证书
acme.sh --issue --dns dns_ali -d *.example.com
安装证书
acme.sh --install-cert -d *.example.com --key-file /usr/local/nginx/conf/ssl/example.com.key --fullchain-file /usr/local/nginx/conf/ssl/fullchain.cer --reloadcmd "service nginx force-reload";
配置nginx
server {
listen 80;
listen 443 ssl default_server;
server_name www.example.com;
access_log /data/wwwlogs/access_nginx.log combined;
root /data/wwwroot/default;
index index.html index.htm index.php;
ssl_certificate /usr/local/nginx/conf/ssl/fullchain.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/example.com.key;
#ssl性能调优
#nginx 1.13.0支持了TLSv1.3,TLSv1.3相比之前的TLSv1.2、TLSv1.1等性能大幅提升
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
#使用ssl_session_cache优化https下Nginx的性能
ssl_session_cache builtin:1000 shared:SSL:10m;
#OCSP Stapling 开启。OCSP是用于在线查询证书吊销情况的服务,使用OCSP Stapling能将证书有效状态的信息缓存到服务器,提高 TLS 握手速度
ssl_stapling on;
#OCSP Stapling 验证开启
ssl_stapling_verify on;
#error_page 404 /404.html;
#error_page 502 /502.html;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
然后,重启nginx 服务器,就OK了
添加安全组规则
开放端口443