什么?!你还不会申请免费的SSL证书??

2022-10-26 08:31:02 浏览数 (1)

前言

突然发现我的网站没有SSL,作为一个职业前端人,我得有,而且我得会弄,之前上学那会儿有用宝塔一键部署过,感觉应该不会很复杂。

目标以及问题

  1. 白嫖
  2. 不想总手动更新,因为我懒
  3. 安装&配置过程不要太复杂

得到的结果

acme.sh可以达到我的要求

安装 acme.sh

代码语言:javascript复制
curl  https://get.acme.sh | sh -s email=自己的邮箱

生成证书

生成证书的方式有两种http && DNS,因为DNS需要去解析一条记录,我很懒,懒得去解析,所以我没试DNS,以后想起来再试试。 懒是一方面原因,个人感觉http方式更香,引用官方一句话:

只需要指定域名, 并指定域名所在的网站根目录. acme.sh 会全自动的生成验证文件, 并放到网站的根目录, 然后自动完成验证. 最后会聪明的删除验证文件. 整个过程没有任何副作用.

简单,好操作,开始操作:

代码语言:javascript复制
acme.sh  --issue  -d 网站地址  --webroot  网站根目录

安装证书

nginx的目录下新建一个ssl_cert目录存放证书

代码语言:javascript复制
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

nginx 配置

代码语言:javascript复制
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;
    }
}

完结

0 人点赞