最近开发小程序,因为以前只写过小程序的前端没注意接口,现在才发现原来所有的接口都必须使用https协议了,马上研究了一波,顺便也想给自己的博客升成https的。
申请免费证书
- 哈哈没办法就是喜欢免费的。。。真是煞费苦心找了很久。。还是找到咯
-
https://freessl.org/
进去有两个选项,一个亚洲诚信的(一年),一个let's encrypt(3个月),我选的亚洲诚信的 填写邮箱,这里注意,如果选择浏览器生产的话,最好用chrome,我用ff失败了
得到一个txt记录和记录值
进入阿里云后台设置DNS
- 添加后,等待1分钟左右吧,就可以点“手动验证”了
- 跳转到一个验证页面,验证,然后注意要全部都"匹配",如果没匹配继续在那个页面操作
- 全部”匹配“后,回到之前页面,点击"验证"
不出意外会获得证书了
- 分别用记事本保存下来,上面的存
abc.crt
,下面存abc.key
进
https://www.myssl.cn/tools/downloadchain.html
,将abc.crt复制进去,得到中间证书chain.crt
配置apache的https
- 自己用的apache,这里只讲apache的配置
- 安装apache的mod_ssl.so模块
yum -y install mod_ssl
- 修改 ssl.conf
vim /etc/httpd/conf.d/ssl.conf
- 重启apache
service httpd restart
- 启动重定向(可选),使用用户HTTP访问自动重定向为HTTPS,直接在http.conf最后配置即可,
vim /etc/httpd/conf/httpd.conf
- 在httpd.conf文件尾加入如下内容:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
node配置https
- 刚开始以为可以了,结果进入网站一看,所有接口都报错了,原来网站服务器使用https后,接口也必须使用https的,没办法,继续折腾
node里面配置一波
- 重启服务器node
-
规矩!
apache反向代理
- 还没完。。。。
- 因为小程序后台接口是不允许ip或者端口的,而自己的后台接口是node写的,用的端口是8888。
- 因为自己项目是前后端分离的,https默认端口443已经被apache占用了。咋办?
- 只有用apache反向代理了
- vim /etc/httpd/conf/httpd.conf
- 在httpd.conf文件尾加入如下内容
# 反向代理
ProxyRequests Off
SSLProxyEngine on
# 正式
ProxyPass /api https://www.yangyuetao.cn:8888/api
ProxyPassReverse /api https://www.yangyuetao.cn:8888/api
# 测试
ProxyPass /api2 https://www.yangyuetao.cn:8889/api2
ProxyPassReverse /api2 https://www.yangyuetao.cn:8889/api2
#8888为apache的监听端口
<proxy https://127.0.0.1>
AllowOverride None
Order Deny,Allow
Allow from all
</proxy>
- 这样配置后
- 当请求
https://www.yangyuetao.cn/api
的时候,请求会自动变为https://www.yangyuetao.cn:8888/api
- 而请求
https://www.yangyuetao.cn/api2
的时候,请求会自动变为https://www.yangyuetao.cn:888/api
安全
- 关闭RC4弱密码套件
https://www.cnblogs.com/pshell/p/7942059.html
- 关闭SSLv3
http://blog.sina.com.cn/s/blog_777f9dbb0102v8de.html
- 检测
https://myssl.com/
最后
大家好,这里是「 TaoLand 」,这个博客主要用于记录一个菜鸟程序猿的Growth之路。这也是自己第一次做博客,希望和大家多多交流,一起成长!文章将会在下列地址同步更新……
个人博客:www.yangyuetao.cn
小程序:TaoLand