为何用https
来源:互联网 发布:知乎害人 编辑:程序博客网 时间:2024/06/05 18:23
基本概念
HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议;使用 HTTPS 连接时,服务器要求有公钥和签名的证书。SSL 证书是一种数字证书,实现信息的加密传输。需要ssl证书的网站类型包括银行、购物类交易网站
如果某个网站要求你填写信用卡信息,首先你要检查该网页是否使用 https 加密连接,如果没有,那么请不要输入任何敏感信息如信用卡号。服务器采用https必须从CA 申请一个用于证明服务器用途类型的证书,大多数CA都是收费的。VeriSign即是一个著名的国外CA机构,工行、建行、招行、支付宝、财付通等网站均使用VeriSign的证书,而网易邮箱等非金融网站采用的是中国互联网信息中心 CNNIC颁发的SSL证书。一般来说,一个证书的价格不菲,以VeriSign的证书为例,价格在每年8000元人民币左右。听说StartSSL针对个人的基础型证书是免费的
该证书只有用于对应的服务器的时候,客户端才信任此主机,客户通过信任该证书,从而信任了该主机. 其实这样做效率很低,但是银行更侧重安全。 所以目前所有的银行系统网站,关键部分应用都是https的.
有人说像我们的cms服务器, 客户端都是内部人自己使用,所以就肯定信任该服务器,使用https没有任何意义了;
而且为了安全保密,将一个网站所有的Web应用都启用SSL技术来加密,并使用HTTPS协议进行传输,那么该网站的性能和效率将会大大降低,
所以只需对那些涉及机密数据的交互处理使用HTTPS协议,总之不需要用https 的地方,就尽量不要用。
但是部分使用使用https?跨域操作会很麻烦,即使有解决办法。。
为确保每个用户都从HTTPS中受益,我们应该将所有传入的HTTP请求重定向至HTTPS。这意味着任何一个访问网站的用户都将自动切换到HTTPS,从那以后他们的信息传输就安全了。验证用户名和密码只是web上用户身份验证的一部分:像淘宝一样我们还需要记住某个已经验证过的特定用户,最常见的办法是使用session cookies,这通常意味着浏览器sessionId存储在一个cookie中,服务器端的数据库知道这个sessionId对应某个特定的session,而那个session又对应着某个特定的已验证用户。如果有人用某种方式得到了用户的sessionId,那么在登陆之后,他就获得了用户所有的权限,这和知道密码没什么两样。
但是,由于cookie的运作方式,浏览器每次向网站发请求时都会包含cookie信息。这样就导致用户的session cookie被浏览器发送出去。如果这时有人在监听,他们依然可以篡改用户的账户。
简而言之:由于允许访问用户账户的session cookie在每一次请求中都会被发送,仅仅保障登陆页面的安全是绝对不够的,除非用户已经连上了SSL,否则他们不应该传输任何机密信息,比如session cookie。
如何购买https证书?
一般https证书是免费的,但是免费的https证书会一直提示网络安全证书有问题,是不被浏览器等客户端识别的,如果不想一直提示,需要得到相关机构认可,需要购买相关认证机构的证书,比如 https://www.wosign.com/ 【注意】:证书一般是需要指定ip和域名的,如果要更改就得重新购买,所以在购买前,哪些产品需要用到此证书,一定考虑清楚相关ip和域名
配置Tomcat服务器
购买后的https证书会以一个jks文件给使用公司,比如:www.abcd.com.jks,端口为2443,外网端口12443,需要在server.xml里配置https连接,
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="2443" /><Connector port="8099" protocol="AJP/1.3" redirectPort="2443" />
打开Tomcat根目录下的/conf/server.xml,找到Connector port="8443"配置段,修改为如下:<Connector port="2443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/home/cxb/credential/https/abcd.com.jks" keystorePass="123321" truststoreFile="/home/cxb/credential/https/abcd.com.jks" truststorePass="123321"/>(tomcat要与生成的服务端证书名一致)属性说明:clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile:服务器证书文件路径keystorePass:服务器证书密码truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书truststorePass:根证书密码
以上配置好后,访问https://www.abcd.com:12443即可。
配置web.xml
<login-config><auth-method>CLIENT-CERT</auth-method><realm-name>Client Cert Users-only Area</realm-name></login-config><security-constraint><web-resource-collection> <web-resource-name>SSL</web-resource-name> <url-pattern>/*</url-pattern></web-resource-collection><user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>
参考:
HTTPS 部署简要指南
IPSec,SSL VPN以及OpenVPN引发些许感慨
HTTPS和HTTP的区别
https原理及tomcat配置https方法
0 0
- 为何用https
- 一篇文章告诉你,TLS 1.3 如何用性能为 HTTPS 正名
- https如何用java实现?
- 为何用肌肉思考
- 为何用达龙云桌面
- 如何用fiddler抓取https的包
- http替换为https
- http转化为https
- 为Tomcat配置Https
- 办公自动化:OA为何用不好?
- 有了Eclipse为何用Ant
- 为何用/usr/bin/env
- 为Tomcat6.0配置HTTPS
- HTTP_X_FORWARDED_FOR为空 和 HTTPS
- 为RouterOS配置https访问
- Mac 配置为https服务器
- 为git设置HTTPS代理
- nodejs 为HTTPS添加proxy
- 欢迎使用CSDN-markdown编辑器
- deep learning with R
- LeetCode OJ 106. Construct Binary Tree from Inorder and Postorder Traversal
- 【DOM】Node类型之Element类型
- mysql中游标的使用案例详解(学习笔记)
- 为何用https
- MyCat部署运行(Windows环境)与使用步骤详解
- JS:关于JS引用类型——Function类型
- 股神
- 代码没有命名规范好麻烦。这时实践中的代码命名规范C#
- zabbix 3.0.2邮件报警
- android jxl对excel进行读、写、修改操作,设置excel列宽
- PLSQL Find Non-Number Data
- Handler学习笔记