https_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > https

https

 2018/4/2 15:11:41  xyz啊哈  程序员俱乐部  我要评论(0)
  • 摘要:以下内容为查看其它的博客的总结【已附上原链接地址】,如有问题,请指正,谢谢计网中HTTPS的实现过程【HTTPS是在http的基础上加上了TLS/SSL的加密传送信息的协议】【https://blog.csdn.net/baiye_xing/article/details/73989189】客户端发送HTTPS请求服务端接受请求,并发送证书给客户端【此证书有公钥、有效期、发证机构等信息,无私钥】客户端接受到证书,校验证书【发证机构CA的证书默认被信任;自设的证书,客户端会提示用户
  • 标签:HTTP

?

以下内容为查看其它的博客的总结【已附上原链接地址】,如有问题,请指正,谢谢

  1. 计网中HTTPS的实现过程【HTTPS是在http的基础上加上了TLS/SSL的加密传送信息的协议】【https://blog.csdn.net/baiye_xing/article/details/73989189】

    1. 客户端发送HTTPS请求

    2. 服务端接受请求,并发送证书给客户端【此证书有公钥、有效期、发证机构等信息,无私钥】

    3. 客户端接受到证书,校验证书【发证机构CA的证书默认被信任;自设的证书,客户端会提示用户,是否信任此证书,由用户决定是否使用此证书】

    4. 客户端生成随机数,并使用证书公钥进行加密

    5. 客户端把加密后的随机数发送给服务端

    6. 服务端使用私钥解析出客户端发过来的随机数

    7. 服务端使用随机数加密数据

    8. 服务端发送加密后的数据给客户端

    9. 客户端获取加密后的数据,用随机数解密,获取明文

  2. 服务器从http转成HTTPS【https://www.cnblogs.com/moon521/p/5948058.html】

    1. 生成证书

      1. 向发证机构申请【需要交年费】

      2. 使用jdk工具生成:命令:keytool -genkey -alias 证书名称?-keyalg RSA ? -keystore d:\keystore.jks -dname "CN=公开名称, OU=单位名称, O=组织名称, L=SH, ST=SH, C=CN" -keypass key密码?-storepass 存储密码 -validity 有效天数

    2. Tomcat中配置证书

      <Connector SSLEnabled="true" acceptCount="100" clientAuth="false"

      ????disableUploadTimeout="true" enableLookups="false" maxThreads="25"

      ????port="8443" keystoreFile="/Users/loiane/.keystore" keystorePass="password"

      ????protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"

      ????secure="true" sslProtocol="TLS" />

    3. 进过1,2部后就可进行HTTPS访问了,但是也能进行http访问,若要屏蔽http,需在web.xml中设置

      <security-constraint>

      ????<web-resource-collection>

      ????????<web-resource-name>securedapp</web-resource-name>

      ????????<url-pattern>/*</url-pattern>

      ????</web-resource-collection>

      ????<user-data-constraint>

      ????????<transport-guarantee>CONFIDENTIAL</transport-guarantee>

      ????</user-data-constraint>

      </security-constraint>

      ?

      URL 映射设为 /* ,这样你的整个应用都要求是 HTTPS 访问【若用http访问也会自动转成https】,而 transport-guarantee 标签设置为 CONFIDENTIAL 以便使应用支持 SSL。

      如果你希望关闭 SSL ,只需要将 CONFIDENTIAL 改为 NONE 即可。

  3. Java中访问HTTPS接口的实现【https://blog.csdn.net/shumeng_xiaoyan/article/details/76503601】

    1. http和HTTPS的区别在于,HTTPS多了验证证书的过程【证书正常情况下被jdk/jre/security/cacerts所管理

    2. 验证证书的过程

      1. 发证机构的证书默认是不需要验证的【直接用http的方式访问就行】

      2. 自设证书【jdk生成的证书】

        1. jre中导入证书

          1. 从该网站下载或者从网站开发者出获取证书cacert.crt

          2. 运行命令将证书导入java运行环境:keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -file cacert.crt?-alias?xxx

          3. 完成。java代码中发送https的请求和http一样,同第一种情况。

        2. 忽略证书的验证,继承X509TrustManager?,不实现任何方

        3. 验证证书,继承X509TrustManager?,修改构造器

          ?

发表评论
用户名: 匿名