跳至主要內容

使用acme.sh安装证书

大约 2 分钟...后端https证书

使用acme.sh安装证书

写在前面

  1. 能看懂acme.sh官方文档的同学 尽量按照官方的来
  2. 建议切换到root用户操作,可以避免很多问题
  3. 不要使用 nginx -s reload,可能导致读取不到最新的证书地址配置(建议使用nginx -s stop && nginx)
  4. 浏览器存在证书缓存,正确配置后却没有刷新证书,可以尝试重启浏览器
  5. 安装完成后,acme.sh工具会自动添加crontab任务,定时刷新证书有效期

步骤

# 安装acme.sh
curl https://get.acme.sh | sh -s email=my@example.com

# 生成证书
~/.acme.sh/acme.sh --issue -d domain.com --keylength ec-256 --webroot /your/wwwroot/path

# 安装证书(相当于将证书cp到对应目录下)
~/.acme.sh/acme.sh --install-cert -d domain.com --ecc \
--key-file       /your/cert/path/key.pem  \
--fullchain-file /your/cert/path/cert.pem \
--reloadcmd     "nginx -s stop && nginx"

遇到的问题or注意事项

1、生成证书时 尽量不要使用 --standalone 参数

使用这个参数时,可能导致--webroot参数失效
且需要改动更多的系统配置,不了解这个参数含义的同学不要添加

2、生成证书时的webroot参数

指定webroot参数后,需要注意:

  1. webroot参数的值为80端口服务的index页面的目录

以nginx的配置为例

server {
    listen  80;
    server_name           domain.com;
    root /your/path/nginx/html;
}

生成证书的命令参数为 --webroot /your/path/nginx/html

  1. 80端口的服务为启动的状态

生成证书的过程中,acme会再webroot目录下生成一个临时文件。然后通过http请求再获取这个文件来验证本人是否拥有该服务器的控制权

3、安装证书时的--reloadcmd参数

该参数指定了服务的重启方式,如果使用Apache,请替换为Apache的服务重启命令

4、生成证书的步骤后 证书已经生成完毕 为什么还要再执行安装证书的命令

生成的证书默认在acme.sh的安装目录(证书一般在~/.acme.sh/domain.com/目录下)

自行copy也可以,仅因为acme.sh的官方文档中不建议使用该目录

5、安装证书后 服务器还是不支持https

安装时指定了copy证书的路径,需要在服务器配置中再次指定证书所在的目录,以nginx为例

    server {
        listen  443 ssl;
        ssl_certificate       /your/cert/path/cert.crt; # 这里的文件名与后缀 以安装证书指定的文件为准
        ssl_certificate_key   /your/cert/path/cert.key; # 同上
        server_name           domain.com;

        # 省略其他配置
        # ......
    }

6、安装证书时的文件名称

--key-file       /your/cert/path/key.pem
--fullchain-file /your/cert/path/cert.pem

这两个参数指定了文件的路径和名称,文件后缀看自身的需求,如下亦可:

--key-file       /your/cert/path/appname.key
--fullchain-file /your/cert/path/appname.crt

参考

acmesh-officialopen in new window

v2ray-officialopen in new window

上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.6