Android中Https通信实现_了解Https - Go语言中文社区

Android中Https通信实现_了解Https


概览

  • 什么是Https
  • Https和Http的区别
  • Https证书

什么是Https

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
特性:

  • Https它是一个URI scheme(抽象标识符体系),句法类同http
  • 用于安全的HTTP数据传输
  • Https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)
    这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

Https和Http的区别

  • Http是超文本传输协议,信息是明文传输;Https则是具有安全性的ssl加密传输协议,信息是密文传输。
  • Http使用的端口是80;Https使用的端口是443。
  • Http的连接很简单,是无状态的;Https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。
  • Http不需要握手认证和ssl加密,所以效率高;Https需要证书校验、握手校验,效率要低一些。

Https自制证书

1、创建证书
Https自制证书创建就是用JDK的keytool进行创建,创建命令是:

keytool  -genkey -alias "test" -keyalg "RSA" -keystore d:keystore -dname "CN=aaa, OU=aaa, O=aaa, L=BJ, ST=BJ, C=CN" -storepass "123456" -keypass "123456" -validity 1825

指令参数含义:
-genkey:生成一对非对称密钥;
-alias:给生成的密钥对和证书指定一个别名,因为生成的密钥库中可以存放多个密钥对和证书信息,keystore根据别名来管理以上信息;
-keyalg:指定生成那种类型算法的密钥对;
-keystore:指定生成的密钥库存放路径;
-dname:指定证书拥有者的信息,如果未指定该参数信息,则keytool会要求在命令行中以交互的方式输入以上信息;
-storepass:为密钥库设置密码(因为密钥库中保存有私钥信息,需要设置密码对密钥库的操作进行控制);
-keypass:为密钥库中的私钥设置密码,以保护私钥信息;
-validity:指定证书的有效时间,单位为天;
执行以上指令,成功时提示如下,并会在keystore指定的路径生成keystore文件。
2、导出cer证书

keytool -export  -alias test-file  d:test.crt  -keystore  d:keystore

指令参数含义:
-export:指定操作类型为导出;
-alias:从密钥库中导出指定别名的证书信息;
-file:指定导出的证书存放的路径;
-keystore:指定导出证书的密钥库;
执行以上指令后,会提示输入密钥库口令,此指令即为生成证书时-storepass指定的密码。

从浏览器导出Https客户端证书

1、使用chrome浏览器打开百度官网
在这里插入图片描述
2、右键安全,选择证书,点击有效
在这里插入图片描述
在这里插入图片描述
3、选择详细信息,并点击下边的复制到文件
在这里插入图片描述
4、点击下一步
在这里插入图片描述
5、选择base64编码,点击下一步
在这里插入图片描述
6、重命名证书文件,点击下一步
在这里插入图片描述
7、最后点完成,就会得到百度的客户端证书
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u010982507/article/details/85250750
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢