1 Star 5 Fork 10

老胡来也 / 如何获取免费https证书

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

如何获取免费https证书

步骤如下:

  1. 安装acme工具
  2. 生成证书,一般有两种,单域名证书和泛域名证书
  3. 复制证书到 nginx/apache 或者其他服务
  4. 更新证书
  5. 更新 acme.sh
  6. 出错怎么办, 如何调试
  7. 如何使用/配置

以下以Debian 11下为例,配合nginx,展示获取免费证书的步骤

一、安装acme工具

安装命令如下:

curl https://get.acme.sh | sh -s email=myhfw003@outlook.com

说明1:acme安装在当前用户家目录下的.acme.sh目录中

说明2:最后的邮箱,请记得换成自己的有效电子邮箱

说明3:如果你想acme.sh在任意路径可用,可以设置一个别名,在环境变量文件.bashrc中放入如下命令:alias acme.sh=~/.acme.sh/acme.sh,并执行source ~/.bashrc即可

说明4:可能因为网络问题无法安装成功,参考如下操作:

git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com

二、生成证书

  1. 生成单域名证书

生成命令如下:

acme.sh  --issue  -d 9ihub.com --webroot  /var/www/9ihub.com

如果你是nginx作为web服务器或者反向代理,则可以简单的使用如下命令:

acme.sh --issue  -d 9ihub.com   --nginx

说明:以上都要求先部署好对应的网站

  1. 生成泛域名证书(以阿里云的域名为例)

    1. 需要先在阿里去生成RAM子账号,给予域名解析相关完整权限(AliyunDNSFullAccess),并生成对应的key和scret,具体请自行查找资料
    2. 设置环境变量,执行如下命令
    export Ali_Key="XXXXXXXX"
    export Ali_Secret="XXXXXXXXXXXXXXX"
    1. 生成证书,命令如下:
    #以下命令申请了根域名证书和三级泛域名证书
    acme.sh --issue --dns dns_ali -d 9ihub.com -d *.9ihub.com

    如下图所示:

    20221004203345

说明1:生成的证书位于当前用户家目录下.acme.sh目录中

说明2:生成的证书的路径不能保证完全正确,所以不要直接使用生成的证书,应该完成如下步骤三、复制证书到指定路径

三、复制证书到指定路径

复制命令如下:

acme.sh --install-cert -d *.9ihub.com --key-file /etc/nginx/ssl/key.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --reloadcmd "systemctl force-reload nginx"

说明1:如上命令的目录请自行确保路径正确,如有需要可自行创建目录,此路径可以自行规定

说明2:复制证书的命令只需要执行这一次,后面自动更新证书后,会自动执行此命令

四、更新证书

证书的有效期是90天,但是证书会在60天以后自动更新,你不需要做任何操作(不保证以后时间不会缩短)

五、更新 acme.sh

命令如下:

acme.sh --upgrade

如果想偷懒,可以让其自动更新,命令如下:

acme.sh --upgrade --auto-upgrade

六、出错怎么办, 如何调试

如果出错了,请使用如下语句调试

acme.sh --issue  .....  --debug 

七、如何使用/配置

以下是一个极简的配置示例,但暂时来说完全够用了,祝玩的愉快:

server{
    # 输入普通地址时,跳转到https地址
    listen 80;
    server_name test.9ihub.com;
    return 301 https://test.9ihub.com$request_uri;
}

server{
    listen 443 ssl;  #监听的端口
    server_name test.9ihub.com; #监听的域名

    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/key.pem;	

    location / {
        root /var/www/test.9ihub.com; #网站所在路径
        index index.html; #默认的首页文件
    }
}

空文件

简介

如何获取免费的证书:单域名和泛域名 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/myhfw003/howto-get-free-cert.git
git@gitee.com:myhfw003/howto-get-free-cert.git
myhfw003
howto-get-free-cert
如何获取免费https证书
master

搜索帮助