对于个人或者小型公司来说,申请正规的SSL证书,还是需要一定的费用的。目前,免费SSL证书也挺多,但很多都是只有1年的免费期,推荐使用Let's Encrypt证书,虽然其默认只有90天,但通过脚本,可以自动续费,理论上可以无限期使用,还是很方便的。

推荐使用acme脚本来自动生成、自动续费SSL证书。

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

下载后,脚本会自动安装到/root/.acme.sh目录下,首先注册一个账号

/root/.acme.sh/acme.sh --register-account -m xxxx@163.com

vi create_ssl.sh

export DP_Id="100000"
export DP_Key="xxxxxxxx"
~/.acme.sh/acme.sh --issue --dns dns_dp -d tech126.com -d *.tech126.com

根据自己的域名解析用的工具,自行修改上面脚本的参数,我使用的是DNSPod,因此对应的是DNSPod的API ID和key。

执行完上述脚本后,就会在/root/.acme.sh/tech126.com下面生成相应的证书文件

接下来修改nginx的配置文件

listen 443 ssl;
charset utf8;

ssl_certificate ssl/tech126.com.cer;
ssl_certificate_key ssl/tech126.com.key;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;

增加80端口的自动跳转

server {
listen :80;

server_name tech126.com www.tech126.com;

rewrite ^(.)$ https://$host$1 permanent;
}

重启nginx,之后在wordpress的admin管理后台,修改网站主页为https即可。