自动化签发ssl证书记录

前言: 自动化签发证书ssl时,查看文档有些麻烦,而且签发命令较为繁琐,遂写这一篇文章做个记录,以后在申请的时候可以直接复制,也算是对自动化签发ssl证书的一点小探索。

1.两种自动化工具比较

###1.1 certbot

按照个人的使用习惯来看,certbot签发命令较为简单.更适合在单机情况下部署ssl证书。是因为它调用dns服务商的api并不多,而且主要是国外DNS服务商(相较于acme.sh),只推荐单机使用.

1.2 acme.sh

是纯shell写的签发工具.相对cerbot而言表现更优秀,支持多个DNS服务商api。能很轻松的完成SSL的自动化,也支持nginx自动部署操作。缺点就是命令较为复杂,记不住.

##2.使用自己的服务器签发证书

特别说明:我的实例是基于ubuntu操作系统,下面所有的展示都在ubuntu操作下完成!!!其它系统命令可能会不一样,但certbot和acme.sh签发证书的命令是一样的

###2.1使用cerbot签发证书

apt update && apt -y install nginx && apt -y install python3-certbot-nginx 
certbot --help

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kp0XjdYb-1680568461215)(null)]

安装好之后回显应该如上图,可以运行 certbot --help查看更多命令.如果apt安装显示没有储存库,你需要尝试添加官方储存库再安装,为了简单且方便演示,我直接从储存库安装了nginx.这时候你就可以把域名解析到服务器所在的ip了。解析好之后,就可以做下一步的工作了

cd /etc/nginx/sites-enabled
nano nginx.conf 
nginx -t
systemctl restart nginx
server {
    listen      80; 
    listen [::]:80;
    server_name rsshub.examle.com; #你的域名   
}
 
server {
    listen 443 ssl;
    server_name rsshub.examle.com; #你的域名
    ssl_certificate  /ssl/1.pem; #替换为自签名的ssl证书
    ssl_certificate_key /ssl/1.key;#替换为自签名的ssl密钥
    location / { 
        proxy_pass http://127.0.0.1:1200;
        proxy_set_header Host $host;
        proxy

你可能感兴趣的:(ssl,自动化,nginx)