摘要:本文记录了我在Ubuntu 20.04 VM上面通过修改host文件来将自己的域名zangchuantao.com 指向localhost并配置SSL证书来支持HTTPs访问本地服务器的操作。
设备:
- 当前Ubuntu server,运行Apache支持访问https://zangchuantao.com
- Ubuntu server VM, 运行Apache, wordpress来负责生成html文件。带Firefox浏览器以支持wordpress操作。
我的这个博客使用wordpress搭建的,wordpress很好用,只是树大招风,它的PHP文件和各种插件经常被人瞅上从而导致被黑,我就中过几次招,最终决定将自己博客做成经典的HTML+Javascript+CSS格式,但是wordpress又实在好用,用户编辑界面很友好,像word里一样写个文档,写完点一下发布就可以了。所以最终确定了如下方案:
找另一个Ubuntu machine VM 本地运行wordpress,我在那里面可以照常写作操作,写完的内容使用1个叫wp2static的wordpress插件来生成静态的HTML文件,然后再把这些HTML文件复制到我现在的Ubuntu server。Ubuntu machine好解决,用个虚拟机就可以了,再安装Apache和Wordpress即可,只是该怎样让VM上的浏览器访问真实域名时跳转到本地wordpress本地运行呢?即在VM的Firefox里输入https://zangchuantao.com,它访问的是本地local apache server以及wordpress?经过一番摸索,记录如下:
1 修改Host文件,/etc/hosts文件里添加这行:127.0.0.1 zangchuantao.com
2 修改Apache 配置文件, 在virtualhost相关的配置文件里添加该域名对应的SSL证书和SSL 密钥文件,具体在我的例子中,我直接修改了/etc/apache2/sites-available/default-ssl.conf:
ServerName zangchuantao.com
SSLEngine on
SSLCertificateFile PathTO_fullchain.pem
SSLCertificateKeyFile PathTO_privkey.pem
上面fullchain.pem和privkey.pem分别是我用Let's eccrypt bot生成的SSL证书和密钥文件,从当前server 复制得到。
3 重启apache 服务就可以了 sudo service apache2 restart
4 本地启动Firefox,输入https://zangchuantao.com 就可以访问本地的wordpress了。现在的Firefox默认启动了DNS over HTTPS,所以上面的Host文件修改无效,它并会访问localhost。这确实是个防止DNS截至的好特性。只是正好阻挡了我的这一个需求。因此,Firefox ->Preferences -> Network Settings里面,将默认打勾的 Enable DNS over HTTPS去掉勾,保存就可以了。