突然发现我的网站没有SSL
,作为一个职业前端人,我得有,而且我得会弄,之前上学那会儿有用宝塔一键部署过,感觉应该不会很复杂。
acme.sh
可以达到我的要求
curl https://get.acme.sh | sh -s email=自己的邮箱
生成证书的方式有两种http
&& DNS
,因为DNS
需要去解析一条记录,我很懒,懒得去解析,所以我没试DNS
,以后想起来再试试。
懒是一方面原因,个人感觉http
方式更香,引用官方一句话:
只需要指定域名, 并指定域名所在的网站根目录. acme.sh 会全自动的生成验证文件, 并放到网站的根目录, 然后自动完成验证. 最后会聪明的删除验证文件. 整个过程没有任何副作用.
简单,好操作,开始操作:
acme.sh --issue -d 网站地址 --webroot 网站根目录
在nginx
的目录下新建一个ssl_cert
目录存放证书
acme.sh --install-cert -d 网站地址 \
--key-file /usr/local/nginx/ssl_cert/xxxxx/key.pem \
--fullchain-file /usr/local/nginx/ssl_cert/xxxxx/cert.pem \
此时ssl_cert/xxxxx
目录下会生成两个文件key.pem
& cert.pem
server {
listen 80;
server_name blog.ishometown.com;
rewrite ^(.*)$ https://$host$1 permanent; // http -> https
}
server {
listen 443;
server_name blog.ishometown.com;
# 证书
ssl_certificate /usr/local/nginx/ssl_cert/xxxx/cert.pem
# key
ssl_certificate_key /usr/local/nginx/ssl_cert/xxxx/key.pem
location / {
root /data/app/blog;
index index.html index.htm;
}
}
完结