Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12997
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 42
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-25 16:10
文章分类

全部博文(3)

文章存档

2017年(3)

我的朋友
最近访客

分类: 网络与安全

2017-10-31 11:55:22

1.  先确定哪些业务需要https

一般不建议所有都走https,能不走就不走

用户中心、支付等重要数据的需要走https

2.  拆分各个业务线,降低耦合性
将各个模块进行拆分,耦合性越低越好,尤其是不走http的业务和走https的业务最好要拆分。 

3.  前端配置ssl证书
如果有会话保持,则考虑使用redis或者memcache或者用nginx进行反向代理来解决会话保持走https的问题。(这里涉及的问题比较多:https自动阻塞http资源的加载问题及https会话到http的登录的会话失效的问题,当然会话保持的问题是否失效也跟软件的架构有关系,视情况而定)。

4.  购买哪些域名的ssl证书 
购买域名的https认证可以考虑泛型的域名证书:比如*.aaaaa.com

这里需要注意:泛型证书不支持三级域名,如果三级域名需要添加则需要另外购买

5.  代码级别更改。
PHP
 
   
1php入口文件控制器,来实现控制http转成https
    2
)由于网站会调用第三方的软件或者第三方的样式文件,这个需要跟第三方的软件供应商协调沟通是否支持,同时对于第三方不支持的样式文件可以不通过加载第三方的样式文件,将其下载到服务器中进行解决(可以考虑程序上解决,一般不建议,最好是将其放到服务器中来解决block问题)
    3
)文件中写死的修改https://或者不加http://
JAVA:
   
1)java调用https时会出现unable to find valid certification path 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个月左右,各个业务线及接口测试的没有问题了,再谨慎上线。

8. 关于客户端浏览器的问题
目前最流行的是SNI,它解决早期的PKI设计(一台服务器只提供一个服务),它有一个特殊的要求:需要客户端和服务器端同时满足条件,对于大部分浏览器来说,大部分都支持SSLv3/TLSv1,但是有的系统及浏览器不支持(比如XP系统的360浏览器会遇到不支持的情况)




最后多唠叨两句:一定要将各个业务线都在测试环境中测试好后,再谨慎上线

参考文档:
http://mengyang.iteye.com/blog/575671


 

阅读(926) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~