后台回复'书',获取推荐书籍电子版 来源:22j.co/bFuC 现在很多站长都会考虑将自己的站点从http升级到https,不仅是基于安全的考虑,有的也是因为第三方平台的限制,如谷歌浏览器会将http站点标记为不安全的站点,微信平台要求接入的微信小程序必须使用https等。 那如何将一个http站点升级为https站点呢? http与https的区别为了数据传输的安全,https在http的基础上加入了ssl协议,ssl协议依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。要想将http升级为https,只需要给http站点增加一个CA证书即可。 目前获取CA证书有两种途径:
收费的CA证书各大服务提供商都有卖,如阿里云、腾讯云等。 收费的证书不便宜,从阿里云官方网站看,它的价格可以从几千元到上万元不等。 这对于小公司平台,甚至是个人站点来说,是一个不小的开支。 Letsencrypt是一个免费、自动化和开放的证书颁发机构,其颁发的证书一次有效期为三个月,但是只要能持续更新,基本可以永久使用。 今天推荐的这个脚本,实现了 acme 协议, 可以帮你持续自动从Letsencrypt更新CA证书。 下载地址如下:
安装安装很简单,一个命令即可: curl https://get. | sh 普通用户和 root 用户都可以安装使用。安装过程进行了以下几步: 1、把安装到你的home目录下:
并创建 一个 bash 的 alias,方便你使用:alias =~/./ 2、自动为你创建 cronjob,每天 0:00 点自动检测所有的证书。如果快过期了,需要更新,则会自动更新证书,安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中: 生成证书实现了 acme 协议支持的所有验证协议, 一般有两种方式验证:http 和 dns 验证。 1、http 方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证,然后就可以生成证书了。 --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/ 会全自动的生成验证文件, 并放到网站的根目录,然后自动完成验证。最后会聪明的删除验证文件,整个过程没有任何副作用。 如果你用的是apache服务器, 还可以智能的从 apache的配置中自动完成验证,你不需要指定网站根目录:
如果你用的是nginx服务器,或者反代,还可以智能的从 nginx的配置中自动完成验证,你不需要指定网站根目录: acme.sh --issue -d mydomain.com --nginx
如果你还没有运行任何 web 服务,80 端口是空闲的, 那么 还能假装自己是一个webserver, 临时听在80 端口,完成验证:
2、dns 方式,在域名上添加一条 txt 解析记录,验证域名所有权。 这种方式的好处是,你不需要任何服务器,不需要任何公网 ip,只需要 dns 的解析记录即可完成验证。不过,坏处是,如果不同时配置 Automatic DNS API,使用这种方式 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。 acme.sh --issue --dns -d mydomain.com 然后, 会生成相应的解析记录显示出来,你只需要在你的域名管理面板中添加这条 txt 记录即可。 等待解析完成之后, 重新生成证书:
dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证。 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成。 copy/安装 证书前面证书生成以后,接下来需要把证书 copy 到真正需要用它的地方。
正确的使用方法是使用 --installcert 命令,并指定目标位置,然后证书文件会被copy到相应的位置,例如: --installcert -d <domain>.com \ 一个小提醒,这里用的是 service nginx force-reload,不是 service nginx reload,据测试, reload并不会重新加载证书,所以用的 force-reload。 Nginx 的配置 ssl_certificate 使用 --installcert命令可以携带很多参数,来指定目标文件。并且可以指定 reloadcmd, 当证书更新以后,reloadcmd会被自动调用,让服务器生效。 值得注意的是,这里指定的所有参数都会被自动记录下来,并在将来证书自动更新以后,被再次自动调用。 java面试精选:100期面试题汇总 更新证书目前证书在 60 天以后会自动更新,你无需任何操作。今后有可能会缩短这个时间,不过都是自动的,你不用关心。 更新目前由于 acme 协议和 Letsencrypt CA 都在频繁的更新,因此 也经常更新以保持同步。 升级 到最新版 :
如果你不想手动升级, 可以开启自动升级: --upgrade --auto-upgrade 之后, 就会自动保持更新了。 你也可以随时关闭自动更新:
出错怎么办:如果出错, 请添加 debug log: acme.sh --issue ..... --debug 或者:
最后,本文并非完全的使用说明,还有很多高级的功能,更高级的用法请参看其他 wiki 页面。
|
|
来自: 西北望msm66g9f > 《编程》