這兩個持續了解、設置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就可以了)
评论