打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Website

前言

网站 https化已是大势所趋,我的个人blog也是老早之前就想搞的,总是没时间。 今天休假,在家折腾了一下, baidufe.com的图标终于变成 绿色的小锁了,美美哒!

Jerry Qu大神研究的很深,我把自己的操作步骤整合了一下,做成一个小工具,也许对大家有用! https://github.com/zxlie/website-ssl.sh

二、使用方式

1、下载

# 下载工具curl -so xx.sh https://raw.githubusercontent.com/zxlie/website-ssl.sh/master/website-ssl.shchmod 0755 website-ssl.sh

没错,就这么下载了就能用了!当然,github源文件的下载,你也可以用你熟悉的任何方式!

注意:此工具会使用到 openssl命令,请务必保证你的机器上已安装此工具!

2、配置

2.1 website-ssl.sh的配置

用任意编辑工具打开 website-ssl.sh文件,针对头部的如下几个配置项进行 按需配置

# ************************ 配置区域 START ******************************# 你的ssl主目录位置ssl_dir="/home/work/www/ssl"# nginx中配置的,给 Let's Encrypt 验证用的challenges_dir="/home/work/www/challenges/"# 按照你的需求进行配置,多个域名用空格分开websites="your-website.com www.your-website.com"# ************************ 配置区域 END ********************************

2.2 nginx conf文件的配置

本工具是用 Let's Encrypt来实现的 https,所以证书的申请需要一个域名验证的过程; 也就是需要对目标站点的Nginx增加一个 location,形如:

# CA认证location ^~ /.well-known/acme-challenge/ {    # 注:这里的$challenges_dir请替换成你自己的真实目录,如:/home/work/www/challenges/    alias $challenges_dir;    try_files $uri =404;}

3、使用

# 直接执行脚本,获取帮助信息sh website-ssl.sh

结果:

    网站ssl自动化工具(v1.0)使用方法:    usage: sh website-ssl.sh -v | csr | pem | nginx | renew | crontab | upgrade    -v        查看工具的版本号    csr       根据域名配置生成csr证书文件(For pem)    pem       生成 Let's Encrypt 认可的pem证书文件    nginx     获取nginx配置文件Demo    renew     更新pem证书文件    crontab   自动更新pem证书文件的crontab任务    upgrade   升级「website-ssl.sh」工具到最新版

4、实际使用案例

step1:创建 pem文件

sh website-ssl.sh pem

注:这一步会自动为我们创建 domain.key文件和 ssl-encrypt.pem文件

step2:获取 nginx配置的Demo

sh website-ssl.sh nginx

注:如果自己知道怎么配置nginx,这一步都可以忽略

step3:配置自己的 nginx conf文件

核心就是配置一下这个:

server {    listen 443 ssl;    server_name  your-website.com;    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES    ssl_prefer_server_ciphers on;    ssl_certificate /home/work/www/ssl/ssl-encrypt.pem;    ssl_certificate_key /home/work/www/ssl/domain.key;    ssl_session_timeout 5m;    ...}

step4:重新载入 nginx配置文件, https完美启用

service nginx reload

5、 csr文件强制更新

此种情况,只针对「需要走https的域名有增减」的情况,我们可以手动执行命令来更新 csr文件:

sh website-ssl.sh csr

只更新 csr文件是没用的,还需要再次更新 pem文件:

sh website-ssl.sh pem

6、ssl证书有效期问题

Let's Encrypt机构颁发的证书,默认只有90天的有效期,所以我们需要有一个证书更新的机制:

sh website-ssl.sh renew

此命令会重新生成签名证书,并重启nginx,使得站点的 https寿命延续

当然,我们完全可以不用手动来做这件事情,用 crontab,省事又省心:

sh website-ssl.sh crontab

把输入的内容,添加到root账号下的crontab列表中,即可:

# Let’s Encrypt 签发的证书只有90天有效期,可以设置为每月1号自动更新0 0 1 * * sh /home/work/www/ssl/website-ssl.sh renew >/dev/null 2>&1

到此,你可以开开心心的用了!

7、工具升级方法

但凡是个工具,都可能会有bug、或者新功能迭代,等等,所以,咱们可以通过如下方式,将工具升级到最新版本:

sh website-ssl.sh upgrade

当然,要查看工具的版本号,也是有命令的:

sh website-ssl.sh -v#或者sh website-ssl.sh version

三、意见反馈

Site: https://www.baidufe.com

Mail: xianliezhao@foxmail.com

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
自己制作https/ssl证书for nginx/lighttpd/apache(chrome不会报错)
Ubuntu使用OpenSSL生成数字证书详解
HTTPS服务器配置(转)
使用 acme.sh 和 DNSPod 配置和自动更新 Let's Encrypt 证书 | Eth...
如何免费的让网站启用HTTPS
nginx 配置 https 的双向认证
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服