这两个持续了解、设置SSL证书方面的事情,先要申请免费的SSL证书,再尝试进行https多网站1个IP多个SSL证书的Apache设置,然后把Drupal网站改http为https访问,另外还想把以前设立的MediaWiki网站也逐步改为https访问,先那以前的个人博客(维客)做一个试验:
- 电脑版:http://www.jamesqi.com/首页 改为 https://www.jamesqi.com/首页
- 手机版:http://mobile.jamesqi.com/首页 改为 https://mobile.jamesqi.com/首页
再来记录一下要点及步骤:
- 官方文档:官方网站上还有人创建了中文文档:Manual:Installing MediaWiki With SSL/zh,不过说的内容与MediaWiki关系不大
- LocalSettings:修改一些变量设置,例如$wgServer = 'http://www.jamesqi.com';改为$wgServer = '//www.jamesqi.com';相对协议//表示http和https都支持,这时可以增加设置$wgServer = '//example.com'; $wgCanonicalServer = 'https://example.com';,让默认的协议为https,如果只支持https一种协议,就改为$wgServer = 'https://www.jamesqi.com';而不设置$wgCanonicalServer;
- 电脑版手机版切换链接:这个在设置的地方修改,例如我们现在是在LocalSettings.php中设置的,把http://都改为//;
- 内部链接:好些地方都需要从http链接改为https链接;
- 模板链接:特别是一些模板页面因为涉及到很多页面所以要特别重视,例如[[模板:留言]]中需要把http://改为//,还有[[模板:导航条]]等;
- 消息链接:例如[[MediaWiki:Talkpageheader]]等
- 外部链接:如果外面是指向已经修改为https的网站的链接,可以将http://www.example.com改为https://www.example.com或者//www.example.com;
- 跨站链接:这个麻烦一点,需要修改数据中的interwiki表,将iwurl中的http://wiki.example.com改为https://wiki.example.com
或者//wiki.example.com补充:数据库命令批量修改办法:
update mingluji_fair.interwiki set iw_url = (REPLACE(iw_url, 'http://', 'https://')) where iw_url like'http://%' and iw_local ='1' and iw_trans ='1'; - 图片:页面中包含[[File:ABC.png]]这样的图片是没有问题的,但如果设置了$wgAllowExternalImages = true;允许外部图片就需要留意了,http://www.18dao.org/logo.png 这样的图片就成了不安全的,需要修改为https://www.18dao.org/logo.png 或者更换、去掉;
- 运行Jobs:修改了模板后需要运行maintenance/runJobs.php来更新数据;
- 清理缓存:我们的MediaWiki网站很多都开启了FileCache,在各项修改完成后需要清理缓存让新的链接和新的页面生效;
- 重定向:推荐将所有http重定向到https,在.htaccess中设置两行
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] - 机器人协定:修改robots.txt(或者我们设置的robots.php),sitemap的http改为https;
- 网站地图:修改生成sitemap的命令,将http改用https协议,
$PHP $HTDOCS/mediawiki_code_www_jamesqi_com/maintenance/multi_sites.php generateSitemap.php www.jamesqi.com --conf=$HTDOCS/wiki.jamesqi.com/LocalSettings.php --compress=no --fspath=$HTDOCS/wiki.jamesqi.com/sites/www.jamesqi.com/ --server=https://www.jamesqi.com --urlpath=https://www.jamesqi.com
重新生成全部网站地图; - 提交搜索:到Google Webmaster Tools、百度站长平台等地方去提交新的https的URL、网站地图等,等过几个月http访问全部指向https没有问题后,可以删除以前提交过的http站点。
待解决和已解决问题:
- {{org:{{PAGENAME}}}}这种嵌入其它站内容的地方,变成了
Moved Permanently
The document has moved here.
补充:已经解决,站间链接interwiki表,将iwurl中不能设置成//wiki.example.com,也不能保存原来的http://wiki.example.com,而是需要改为固定的https://wiki.example.com - Google地图调用以前是http://maps.google.com/maps/api/js?sensor=false,在https网站下无法显示,改为//maps.google.com/maps/api/js?sensor=false就可以了,但百度地图API以前是嵌入http方式v1.0,现在无法显示,需要改为调用https方式的v2.0,直接改一下还不行,需要再花时间测试(如果以前就是调用的百度地图API v2.0则只要把http改为https再加一个&s=1就可以了)
评论