前言

使用acme可以生成免费的https证书,并且部署简单,让我们一起了解下。

安装

我是nginx服务器,所以我以nginx为代表,来告诉如何安装。

下载acme脚本,并执行脚本

curl  https://get.acme.sh | sh

安装过程执行了以下几步:

  1. 把 acme.sh 安装到你当前登陆账户的home目录下。如果是root账户,安装的位置在~/.acme.sh/
  2. 创建了一个acme.sh的快捷方式alias acme.sh=~/.acme.sh/acme.sh
  3. 在crontab自动任务里面创建了一个定时任务,每天0:00点自动检测所有的证书,如果快过期了,会自动更新证书.35 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在.acme.sh目录中

生成证书

acme.sh --issue  -d 域名   --nginx

执行该命令会进行以下步骤:

  1. 自动找到nginx目录,并生成临时文件
  2. 通过域名访问该临时文件,访问完成后删除临时文件
  3. 如果能正常访问,则验证通过,生成证书。否则报错

把证书拷贝到自定义目录

默认证书在安装目录.acme.sh下生成,但不要直接使用该目录下的证书,而应该拷贝到其他自定义目录下。因为.acme.sh目录下的文件可能会被更改。

acme.sh --install-cert -d 域名 \
--key-file       自定义目录/key.pem  \
--fullchain-file 自定义目录/cert.pem 

使用上面命令进行拷贝,acme自动更新证书的任务才能知道要更新的位置。

配置nginx文件

server {
    listen       80;
    server_name  qiud.xyz;
    rewrite ^(.*)$ https://qiud.xjj permanent;
}
server {
  listen  443 ssl;
  ssl on;
  ssl_certificate       /root/acme/qiud.xjj.cer;
  ssl_certificate_key   /root/acme/qiud.xjj.key;
  ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers           HIGH:!aNULL:!MD5;
  server_name           qiud.xjj;

    location /{ 
    proxy_redirect off;
    proxy_pass http://localhost:8080;      
    proxy_http_version 1.1;
    }
}

以上配置文件的意思是,当访问80端口就重定向到443端口,并转发给应用程序监听的8080端口。

重启nginx服务器

service nginx restart

结束

自此,我们就完成了acme免费申请https证书,再也不用看那红色的警告了,心情都舒爽了。

THE END
开启精彩搜索

历史搜索

用户名或邮箱
密码
用户名
密码
重复密码
邮箱
注册
找回密码
注册 登录
邮箱
邮箱验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

新增

新增