昨天完成这个博客的升级之后,想着不如顺便搞一搞当前这台服务器的SSL支持、利用CloudFlare提供的免费服务为当前网站开通SSL证书、并启用https协议访问的功能。
CloudFlare提供的免费证书非常容易申请,只要将域名DNS给到CloudFlare托管、便可以直接开启SSL功能。而且配置起来也很灵活、方便。用了不到20分钟,便令当前网站支持了https协议。
但是试用了一阵发现,WordPress出现了一些问题:前台文章访问、阅读等一切功能都正常,但进入后台之后,发布文章或修改文章时,会提示:Updating failed. You are probably offline。
这是因为后台发布文章时,wordpress会在服务器上直接本地调用自身的接口,而它尝试本地调用的使用也是采用https协议。但我并没有在服务器上部署证书、当初偷懒,只在CloudFlare上做了边缘证书。也就是说通过dns解析域名时,会经过cloudFlare进行中转,但在服务器上直接访问时却发现服务器实际上并未真实的支持SSL协议。
解决起来也简单:对wordpress进行一些修改,让它在进行文章发布、更新时,仍然使用http进行访问。不过这样的修改工作量其实远比做一套完整、完备的端到端证书要更加繁琐。而且同样的工作量下,这样一种“修修补补”的方式反而会给自己日后升级blog埋下隐患。
所以,既然服务器的权限完全在自己手里,又能够对apache进行各种配置、调整,就没有必要只做一个边缘证书,而是中规中矩的在CloudFlare中申请一套免费证书、并且下载到服务器上,开通apache的ssl mod,并将证书文件指定好,如此一番操作下来,彻底完成当前web server的端到端加密访问支持。
重启apache服务,一切正常,无论wordpress的前台还是后台功能,就都正常了。
后记:利用CloudFlare提供的免费证书完成服务器的ssl支持,还是非常简单、容易的。我起初对这个流程并不了解,在网上搜索他人教程,发现写的也是五花八门、迂回曲折。但自己真正的一条路走下来,发现整个过程并不复杂,现在想着自己手里还有另外一个小网站也是多年没有维护、还停留在http访问方式上。
待过些日子,对那个网站也做一下SSL的支持,到时将完整的配置过程,逐步截图留存,并写一个step by step的图文,当给同样遇此问题的朋友们参考吧。