使用acme.sh脚本配置SSL证书

有脚本真方便(不

在 github 乱逛的时候看到这个脚本,可以白嫖 SSL 证书,虽然有效期只有 3 个月但是脚本可以自动续期,于是实践了一下,记下一些坑备用


GitHub 地址:https://github.com/Neilpang/acme.sh


1、在任意目录运行

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

运行之后会在你的 ~ 目录(用户根目录,比如 root 就是在 /home/root)中创建.acme.sh 文件夹,并且将运行命令写到 /bin/bash 中,可以在任意目录中运行(第一次 curl 之后需要重新连接 ssh 方能生效)
2、运行以下命令自动获取 SSL 脚本

acme.sh --issue -d (你的域名) -w (网站根目录)

运行后稍作等待,脚本会自动在网站根目录创建配置,在 Let's Encrypt 上注册 SSL 证书并下载,最后自动删除配置,不会对网站根目录造成实质性影响,获取的证书文件位于~/.acme.sh/ 文件夹中
注意:这个时候不能直接将网站服务器的证书文件路径直接指向到.acme.sh 文件夹中,这会出现一些科学无法解释的错误,比如 电脑中的线性代数文件夹神秘消失 证书到期时无法自动续期等
3、运行以下命令将脚本安装到它该去的地方

acme.sh --install-cert -d (你的域名) --cert-file (cert文件路径) --key-file (私钥文件路径) \
--fullchain-file (chain文件路径) --reloadcmd "(网站服务器重载证书命令)"

其中的网站服务器重载证书命令取决于使用什么网站服务器,我使用的是 Apache2,于是重载命令是 service apache2 force-reload,需要在命令前后加上双引号。这个命令是为了实现证书到期自动续期并自动重载
4、配置 Apache2 服务器(因不同服务器而异)
我使用的是 Apache2,其他服务器请自行参考度娘或某 404
首先配置 /etc/apache2/sites-avliable/ssl-default.conf 文件夹,将 cert 文件路径,私钥文件路径与 chain 文件路径正确填写
然后运行

a2enmod ssl

启用 SSL 功能
然后使用 ln 命令,创建 sites-avliable/default-ssl.conf 的软链接到 sites-enable 文件夹中
最后重启 Apache2 服务器

systemctl restart apache2

防火墙打开 443,可以用 https 访问一下了!


晚点更新一下如何配置强制重定向 http 至 https(咕咕咕)


强制重定向 http 至 https:
1、在网站根目录添加.htaccess 文件,添加如下内容

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

保存退出
2、运行以下命令打开重定向功能

a2enmod rewrite

3、打开 /etc/apache2/apache2.conf 文件,找到 <Directory /var/www/> 代码块中的 AllowOverWrite,参数改为 All
4、重启 apache2 服务

systemctl restart apache2

搞定!

本文链接:https://hatsunemiku-tov.imwork.net/archives/90/

版权声明:本文为原创文章,版权归 T.O.V 所有。