标签:https
1. 先确定哪些业务需要https
一般不建议所有都走https,能不走就不走用户中心、支付等重要数据的需要走https
2. 拆分各个业务线,降低耦合性
将各个模块进行拆分,耦合性越低越好,尤其是不走http的业务和走https的业务最好要拆分。
3. 前端配置ssl证书
如果有会话保持,则考虑使用redis或者memcache或者用nginx进行反向代理来解决会话保持走https的问题。(这里涉及的问题比较多:https自动阻塞http资源的加载问题及https会话到http的登录的会话失效的问题,当然会话保持的问题是否失效也跟软件的架构有关系,视情况而定)。
4. 购买哪些域名的ssl证书
购买域名的https认证可以考虑泛型的域名证书:比如*.aaaaa.com
这里需要注意:泛型证书不支持三级域名,如果三级域名需要添加则需要另外购买
5. 代码级别更改。
PHP:
1)php入口文件控制器,来实现控制http转成https
2)由于网站会调用第三方的软件或者第三方的样式文件,这个需要跟第三方的软件供应商协调沟通是否支持,同时对于第三方不支持的样式文件可以不通过加载第三方的样式文件,将其下载到服务器中进行解决(可以考虑程序上解决,一般不建议,最好是将其放到服务器中来解决block问题)
3)文件中写死的http://,修改https://或者不加http://
JAVA:
1)java调用https时会出现unable to find valid certificationpath to requested target,这个是jdk自带的安全证书不受信任,一种是代码实现:参考http://mengyang.iteye.com/blog/575671;一种是手动导入安全证书的方式解决问题。
如下是手动方法解决:(这个是我在工作中遇到的,当时是java项目中有定时任务创建目录和缓存文件,但是上线ssl后一直没有成功)
a.导出访问该网站的证书
b.安装该证书到java项目的jdk中
cd jdk/jre/bin && keytool -keystore../lib/security/cacerts -import -alias your.ssl.server.name (比如openhot.org) -file 证书路径(如D:../openhot.org.cer)
输入秘钥:默认都是changeit
c.重启项目
2)java项目中其他问题也参看php的问题。
6.对于前端使用缓存的,必须加上ssl证书
我们公司自建的各个节点的缓存服务器都需要更新,这时候可以参考我的自动化部署文章。
7. CDN上线ssl证书需谨慎
CND大家肯定熟悉,基本上公司都会用到,这个需要提前跟供应商沟通,最好能先提供一个测试的CDN,然后将整体的拟真环境走该测试的CDN进行测试,跑2个月左右,各个业务线及接口测试的没有问题了,再谨慎上线。
最后多唠叨两句:一定要将各个业务线都在测试环境中测试好后,再谨慎上线
参考文档:
http://mengyang.iteye.com/blog/575671
http://www.ttlsa.com/web/sni-multi-domain-virtual-host-ssl-tls-authentication/
本文出自 “老逗” 博客,请务必保留此出处http://laodou.blog.51cto.com/11975789/1977715
标签:https
原文地址:http://laodou.blog.51cto.com/11975789/1977715