跳转到主内容
极星编程网:以代码为星,赴技术山海!

HTTPS和内网如何使用?

Hey,有没有遇到过HTTPS和内网配置的问题?别急,今天就来聊聊这个话题。

HTTPS比HTTP更安全,它多了加密、认证和鉴定。那HTTPS是怎么加密的呢?咱们一步步来看。

HTTPS加密流程

1. 客户端生成一个随机数random-client,传到服务器端。

2. 服务器端生成一个随机数random-server,和着公钥,一起回馈给客户端。

3. 客户端收到的东西原封不动,加上premaster secret,再一次送给服务器端。

4. 服务器端先使用私钥解密,拿到premaster secret,此时客户端和服务器端都拥有了三个要素:random-client、random-server 和 premaster secret。

5. 安全通道建立,以后的交流都会校检上面的三个要素通过算法算出的session key。

HTTPS认证流程

问:光加密不行,如何确保没有中间人?客户端访问的一定就是目标网站?

答:证书,权威机构颁发的证书,中间人是没有目标网站的证书的。

问:CA证书包含什么内容?

答:数字签名、有效时间、主体、公钥、X509v3扩展,证书格式。

内网使用HTTPS

问:好一点的证书收付费昂贵,免费的证书也有限制,如果是内网用(没用公网域名或只有内网IP),可以不可使用HTTPS呢?

答:可以。在内网,我们可以自建ROOT CA,充当权威认证机构。

使用openSSL创建服务端公钥和密钥,并使用CA签发,将签发后的私钥(pem)和公钥文件(key)配置到服务器网站中。

内网HTTPS问题

问:内网客户端访问配置成功的HTTPS后会提示网站不受信任,是什么原因?如何处理?

答:任何个体/组织都可以扮演CA的角色,只不过难以得到客户端的信任,能够受浏览器默认信任的CA大厂商有很多,其中TOP5是Symantec、Comodo、Godaddy、GolbalSign 和 Digicert,当然是不信任自建CA的,所以会提示用户网站不受信任。所以客户端浏览器访问自建https网站时需要安装ROOT CA证书,表示信任该自建CA。

HTTPS其他知识

HTTPS的传输采用的是非对称加密,一组非对称加密密钥包含公钥和私钥,通过公钥加密的内容只有私钥能够解密。

CA认证分为三类:DV ( domain validation),OV ( organization validation),EV ( extended validation),证书申请难度从前往后递增,貌似EV这种不仅仅是有钱就可以申请的。

HTTPS一般使用的加密与HASH算法如下:

  • 非对称加密算法:RSA,DSA/DSS
  • 对称加密算法:AES,RC4,3DES
  • HASH算法:MD5,SHA1,SHA256

其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行加密,而HASH算法用于验证数据的完整性。

以上总结来自众多文章中筛选出来的说的比较清楚的,作为参考。

具体实现,请看下一篇。

自签HTTPS证书

——

苏承栈 | 极星编程网资深编辑

想了解更多编程知识,记得关注我们哦!

相关文章