Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

2024-03-07 1889阅读

温馨提示:这篇文章已超过382天没有更新,请注意相关的内容是否还可用!

写在前面的话

小编这里用的是godaddy购买的域名

服务器是aws

acme.sh GitHub地址  https://github.com/acmesh-official/acme.sh

配合nginx进行部署,后面会贴上nginx.conf

我这里是多个域名用同一个证书

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

效果图

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

 Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

来吧,展示

 首先你得在自己服务器上面进行部署nginx,如果不知道怎么操作的,可以参考我这一篇博客,执行到这一步的时候,执行 ./configure --with-http_ssl_module 这个命令 ,部署完成后

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

 地址在这里,点我呀

好,通过上面步骤,安装了nginx,可以通过ip,进行访问自己的项目了,那这个时候进行解析域名ip,小编这里用的是godaddy,

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

然后ping一下自己的域名,看看是不是自己的服务器ip

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

好,前面的准备工作到这里就over了,接下来开始讲证书申请了

一、下载acme.sh

我这里是新服务器,所以里面什么东西都没有,如果有安装部分内容,请略过

进入home目录,安装git,下载acme.sh

cd /home

安装git

yum install -y git

下载acme.sh

git clone https://github.com/acmesh-official/acme.sh.git

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

 进入acme.sh目录

cd acme.sh/

安装cronie 定时任务内容

yum install cronie

更新环境变量

source ~/.bashrc

二、安装acme

安装acme (输入自己的邮箱)

./acme.sh --install -m 51xxxxxx9@qq.com

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

 查看定时任务面板,是否有一条ssl定时任务

crontab -e

如果有这个,即安装成功

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

三、获取秘钥

接下来去godaddy上面进行获取秘钥(创建秘钥)

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

 然后得到key 和 Secret,一定要保存好,保存下来

export GD_Key="你的key"
export GD_Secret="你的Secret"

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

四、生成证书

 然后就可以生成证书了 ,我这里是多个域名,一起生成证书,把aaa.com 改成自己的域名 ,如果跟我一样,报 bash: acme.sh: command not found 错,运行 source ~/.bashrc 这个命令,重新加载环境变量

acme.sh --issue --dns dns_gd -d aaa.com -d admin.aaa.com -d api.aaa.com

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

 然后变成这B样,就好了,证书已生成,路径他已经给你打印出来了

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

 接下来就是安装证书,安装之前,去nginx目录创建一个ssl文件夹,我这里nginx安装在/usr/local/nginx ,所以我就在这个目录创建一个ssl文件夹

然后再进入acme目录

cd ~/.acme.sh/

五、安装证书

安装证书 把aaa.com 改成自己的域名

acme.sh --install-cert -d aaa.com \
--key-file /usr/local/nginx/ssl/aaa.com.key \
--fullchain-file /usr/local/nginx/ssl/aaa.com.pem

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

可以去到 /usr/local/nginx/ssl 看看证书,是否安装成功

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

 ok,证书有了,接下来去nginx.conf 去配置证书,我这里就直接把我nginx.conf贴出来,把aaa.com改成自己的即可,需要注意的地方是,你服务器(我这里的aws),安全组需要开放443端口

Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

六、修改nginx.conf

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
        #当 http 协议被请求时,统一转发到https协议上
        listen 80;
        server_name aaa.com;
        return 301 https://$server_name;
    }
    server {
        listen 443 ssl;
        ssl_certificate "/usr/local/nginx/ssl/aaa.com.pem";
        ssl_certificate_key "/usr/local/nginx/ssl/aaa.com.key";
        server_name aaa.com;
        location / {
                root 自己项目的html路径;
                index index.html;
        }
        location /.well-known/acme-challenge/ {
                root /usr/local/nginx/ssl/;#自己证书路径,我这里证书是这个目录
                log_not_found off;
        }
    }
    # api
    server {
        #listen 80;
        listen 443 ssl;
        ssl_certificate "/usr/local/nginx/ssl/aaa.com.pem";
        ssl_certificate_key "/usr/local/nginx/ssl/aaa.com.key";
        server_name  api.aaa.com;
        location / {
                proxy_pass http://127.0.0.1:8080/;
        }
    }
    # 后台web
        server {
                #listen       80;
                listen 443 ssl;
                ssl_certificate "/usr/local/nginx/ssl/aaa.com.pem";
                ssl_certificate_key "/usr/local/nginx/ssl/aaa.com.key";
                server_name  admin.aaa.com;
                charset utf-8;
                location / {
                        root   后台web html路径;
                        try_files $uri $uri/ /index.html;
                        index  index.html index.htm;
                }
                error_page   500 502 503 504  /50x.html;
                location = /50x.html {
                    root   html;
                }
        }
}

,然后再重启nginx,即可

./nginx -s reload

然后你就可以访问你的域名了,http://aaa.com ,nginx会自动重定向到 https://aaa.com

一定要清除浏览器缓存或者换个浏览器,再进行访问,不然,到时候你就大眼瞪小眼吧~

看都看到这里了,码字不易,感谢点赞

 如果小伙伴们有什么疑问,欢迎下面评论。欢迎指正。如还有什么不懂的加我 QQ:517861659

如果没有及时回复,可以点我先问问AI机器人Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)https://chatgpt.byabstudio.com/login?code=202307011314  

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]