up-https-2近两天闲下来,把这个弄了!
目前我的站群有5个子站,而证书就弄一个就行,在“证书持有者可选名称”这步,把你站群全部的证书加进去!
我用的是oneinstack的vhost.sh脚本
网站在运行着,你不用管他,主要是用这个脚本来获取证书,并配置一个网站,要注意的是他会在线检查。

up-https

运行vhost.sh选3
可参考下:https://oneinstack.com/faq/letsencrypt/ 内容和新脚本不一定符合。

配置完后,你要做啥?
1、修改你的nginx的虚拟主机的conf文件
2、修改你网站文章内的http://的内链、图片,你可以用phpmyadmin、也可以用插件:Search Replace,或者在phpmyadmin直接执行http替换为https的命令

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://caohuan.com', 'https://caohuan.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://caohuan.com', 'https://caohuan.com');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://caohuan.com','https://caohuan.com');
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://caohuan.com', 'https://caohuan.com');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://caohuan.com','https://caohuan.com');
UPDATE wp_posts SET guid = REPLACE (guid, 'http://caohuan.com', 'https://caohuan.com') WHERE post_type = 'attachment';

还有就是通过配置nginx的conf,把原http请求用301跳转到https(百度允许301)

  if ($server_port = 80 ) { return 301 https://caohuan.com$request_uri; }
  if ($host != caohuan.com) {  return 301 $scheme://caohuan.com$request_uri;  }
  if ($ssl_protocol = "") { return 301 $scheme://$host$request_uri; }

我这是把htt://www.caohuan.com跳转htts://caohuan.com本来我不用加这段配置,原因我在配置证书时忘记把www.caohuan.com也加入,所以要跳转,不然在浏览器输入caohuan然后ctrl+enter访问http://www.caohuan.com跳转到https://www.caohua.com就会出现证书错误,到这步他就不跳转了,所以有了上面几段配置。
当然可能你会觉的配置有重复,哎!我在手机上用了手机自带浏览器、uc、firefox在笔记上用了uc、firefox、edge、exploer,这样配置后才能让我没证书的http://www.caohuan.com正确的跳转到https://caohuan.com
网上也有很多跳转的语法:
oneinstack配置默认的是

if ($ssl_protocol = "") { return 301 https://$server_name$request_uri; }
if ($host != www.caohuan.com) { return 301 $scheme://caohuan.com$request_uri; }

其它的如:

1、if ($scheme = http ) { return 301 https://$host$request_uri; }
2、if ($server_port = 80 ) { return 301 https://$host$request_uri; }
3、rewrite ^(.*) https://caohuan.com$1 permanent;
4、return 301 https://$server_name$request_uri;

如果你在制作证书的时候把 www.caohuan.com caohuan.com都添加有,就是上面的方法之一都可以完成正确跳转。
如果你浏览器缓存了https://www.caohuan.com这样的访问,用ctrl+enter快捷输入时,还是会出现证书错误的问题。这个我没办法去改客户的混存了。

还好证书3个月后到期,到时一定要把这个加上,这样少几个if也能帮nginx省点力。

--------------2019.6.24.08:20更新
为了谁!我还是重签一次吧。!
到 /root/.acme.sh 执行 "./acme.sh --revoke" 吊销证书
先先备份再删除/usr/local/nginx/conf/vhost/*.conf虚拟机配置
再删除/usr/local/nginx/conf/ssl/目录下对应的的crt和key
然后删除 /root/.acme.sh目录下相应的域名目录

准备工作完毕,到/oneinstack执行./vhost.sh选3,
我看到它用的是验证域名解释ip的方式,所以你一定要确保你填入的域名都解释到了相同的ip,如果没绑定是过不了,会提示某个域名出错,按出错所提示的域名再绑定,绑好你也需要等待个几分钟(生效时间看域名商决定),急得话找个PING的网站来ping一下,我自己在vps上来pINg,PING还没出来,在线网站的ping就出来了。
如我5个域名,四个已备,一个在备审(审核期间不能解析到网站,今天周一所以我起早点,用几分钟解释ip,先把证书签下,然后再删除),全部新签成功,那么上面的昨晚折腾码的字就没必要了。
我只需要保留

if ($ssl_protocol = "") { return 301 https://$host$request_uri; }

至于https://www.caohuan.com跳转https://caohuan.com交给wordpress自己处理了。

对于3个月后的更新,你可以放心,acme.sh已经在crontab里面加了自动更新任务,

42 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

每天凌晨检查更新(可crontab --l查看,为了放心如果你没移动目录,可尝试

"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"

这段来检测运行是否成功)。如果你觉得它每天检查有点过了,你可以修改任务的时间。

目前免费支持多域名的也只有let'sencrypt,还有个trustasia亚洲诚信支持双域名,大家讨论的多,文章多,你遇到问题,能找到的文章也多,所以let'sencrypt目前是广大小站的不二之选。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。