HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
由于HTTPS具有良好的安全性,在开发中得到了越来越广泛的应用,比如微信公众号、小程序等应用的开发都需要使用HTTPS来完成。JDK的bin目录中提供了一个Java数字证书管理工具Keytool,通过这个工具我们可以自己生成一个数字证书,命令如下:
keytool -genkey -alias projectHttps -keyalg RSA -keySize 2048 -keystore project.cer -validity 365
命令解释:
keytool:JDK提供的生成数字证书的工具;
-genkey:要创建一个新的数字证书/密钥
-alias:keystore的别名
-keyalg:使用的加密算法,此处RSA表示使用的加密算法是RSA,它是一种非对称加密算法
-keysize:密钥长度
-keystore:生成数字证书后的存放位置
-validity:密钥有效时间,单位为天
通过以上指令运行后,进入系统盘的用户目录下,可以看到生成了一个新的文件,名字为project.cer,我们可以通过这个数字证书进行HTTPS安全链接配置。