以下操作,均在centos7系统
1.域名注册、解析
阿里云申请需要备案等一系列耗时的工作,我仅仅是为了个人玩耍,所以用的是下面这个,它同时提供域名解析服务,30分钟即可搞定,支持支付宝
申请地址
注册教程
解析教程
2.获取证书
此证书取自https://letsencrypt.org/
安装certbot
certbot:yum install -y python36 && pip3 install certbot
安装完毕后,运行certbot --help
可以查看该工具的命令详情。
获取证书(80、443端口不能被占用,需要先关闭nginx,systemctl stop nginx
)
certbot certonly --standalone -d redpeanuts.com -d www.redpeanuts.com
查看证书位置
certbot certificate
nginx配置
server {
listen 80;
server_name redpeanuts.xyz;# 改成你的域名
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl http2;
server_name redpeanuts.xyz;//域名
charset utf-8;
root /home/html/;
# ssl配置
#ssl_protocols TLSv1.2 TLSv1.3; # tls 1.3要求nginx 1.13.0及以上版本
#ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets off;
ssl_certificate /XXX;# 证书地址根据上一步的命令可以获取到
ssl_certificate_key /XXX;#证书密钥文件地址
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
index index.html;
}
}
重启nginx
先测试config文件是否可用
nginx -t
重启
systemctl restart nginx
再用浏览器去访问你的网址,就不会提示不安全了
证书续签
证书的有效期一般是两个月,到期之后需要再次申请,可以用crontab定时任务自动更新
新建cert.sh
systemctl stop nginx
certbot certonly --standalone -d haochifood.xyz -d www.haochifood.xyz
systemctl start nginx
然后新建定时任务,每月28号23:59更新
crontab -e
59 23 28 * * /bin/sh /etc/nginx/conf.d/cert.sh
网友评论