Https的认证证书简介

前言:

CA认证机构默认给150多个网站做了安全认证,也就是说有150多个证书是合法的,要想得到一个合法签名证书,需要到CA认证机构获取,但个人认为这并没有神马卵用(只是浪费钱,12306用的就是自己签名的证书),只是在浏览器访问时,不再提示非法网址罢了,而我们自己创建的网址,对客户端严格来说,是需要双向验证客户端和服务器的证书的。HTTPS也是为此而生的,Https的每次请求连接,都需要经过三次握手,其实就是对客户端和服务器是否正确的校验,握手成功后才会发送数据;HTTPS是HTTP的之下加入了SSL(Secure Socket Layer),安全的基础就靠这个SSL(可理解为签名证书)了,SSL/TLS证书包含身份识别(common name)和公钥,所以要生成SSL/TLS证书这里需要准备这两个东西。


ssl作用 :
  1. 认证用户和服务器,确保数据发送到正确的客户机和服务器;(验证证书)
  2. 加密数据以防止数据中途被窃取;(加密)
  3. 维护数据的完整性,确保数据在传输过程中不被改变。(摘要算法)
使用:

采用HTTPS协议的”服务器”必须要有一套数字证书(CA),可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,若客户端为看到有验证的代码,则很可能服务器用的是受信机构颁发的证书,而使用受信任的公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥。

  • 什么是自签名证书?
    就是没有通过受信任的证书颁发机构, 自己给自己颁发的证书.

  • 自签名证书怎么生成?

  • KeyTool 生成自签名证书:

    • 服务器生成证书:
      keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/keys/tomcat.keystore -storepass 123456
  • 客户端生成证书:
    keytool -genkey -alias client1 -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -storetype PKCS12 -keystore D:/keys/client1.p12 -storepass 123456

  • 让服务器信任客户端证书:必须先把客户端证书导出为一个单独的CER文件,使用如下命令:
    keytool -export -alias client1 -keystore D:/keys/client.p12 -storetype PKCS12 -keypass 123456 -file D:/keys/client.cer(CER文件的密码可能需要重新输入)

  • 然后将两个文件导入到服务器的证书库,添加为信任证书:keytool -import -v -file D:/keys/client.cer -keystore D:/keys/tomcat.keystore -storepass 123456

  • 补充:

    1. 所有公钥证书都有两种格式:纯文本的.crt格式或是二进制的.cer格式,两种都可以用。将生成的文件.keystore 复制到项目路径 /androidappdir/res/raw/ 中;
    2. 两种证书的生成用的是默认的公钥私钥,新的公钥和私钥的生成方法:若安装了git,点开git->Git Bash输入ssh-keygen,然后一直点回车,这样就会在c/Users/Administrator/.ssh中生成两个文件:id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥;
    3. 查看”签名文件”信息方法:
      在dos或Terminal中的输入(jdk中的keytool)命令:
      keytool -v -list -keystore keystore绝对路径,或直接进入到目录下在dos或Terminal中执行:
      keytool -v -list -keystore debug.keystore
  • 如何实现Https的签名验证功能呢?

  • okhttp3方式:
    new OkHttpClient.Builder().sslSocketFactory(getSSLSocketFa
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值