备案成功后,可以通过域名访问网站了。这时就可以申请免费SSL,配置网站https访问了。 这里使用的是acme.sh,由于访问国外网络受限,这里只展示APhpWeb的配置方式,更多详细文档可以去github查看。 国外网不好,文档也比较卡,这里使用root用户进行的配置。

1、下载并安装acme.sh:

# 使用git下载源码
git clone https://github.com/acmesh-official/acme.sh.git
# 进入目录并安装
cd acme.sh/
./acme.sh --install -m xxx@foxmail.com
# 设置命令别名
alias acme.sh=~/.acme.sh/acme.sh

2、生成证书

生成证书需要验证网站的访问权限,会在网站根目录下创建.well-known目录, 这里要注意配置web服务器,允许访问该隐藏目录下的文件

# nginx vhost 配置隐藏目录可访问
location ~ /\.well-known/ {
    allow all;
}
# 生成证书
acme.sh  --issue  -d aphpweb.com -d www.aphpweb.com  --webroot  aphpweb/current/public/

3、安装nginx证书:apache证书安装命令去官方文档看

# 创建证书目录
mkdir /etc/nginx/ssl
# nginx 证书安装
acme.sh --install-cert -d aphpweb.com \
--key-file       /etc/nginx/ssl/aphpweb.com.key  \
--fullchain-file /etc/nginx/ssl/aphpweb.com.crt \
--reloadcmd     "service apache2 force-reload"

4、nginx配置,使用ssl证书并重启:

ssl on;
ssl_certificate     ssl/aphpweb.com.crt;
ssl_certificate_key ssl/aphpweb.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

5、开启acme.sh自动升级 目的是保证能自动更新证书

acme.sh  --upgrade  --auto-upgrade