IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> (备份)自建keystore 再下载网页认证指纹,导入自建keystore最后用此keystore 读取https网页 -> 正文阅读

[网络协议](备份)自建keystore 再下载网页认证指纹,导入自建keystore最后用此keystore 读取https网页

keystore? truststore 本质是一样的,我们就用自建的keystore作为truststore.

1:在我的java工作目录/home/wzpad/java下运行,生成keystore文件:keystore.jks

keytool -genkey -alias? mydomain? ?-keyalg RSA? -keystore keystore.jks -storepass 123456

2:打开chrome浏览器,导出想要的网页的认证指纹,并存储,比如我导出https://cn.bing.com的指纹取名为bing.crt? 复制此文件到工作目录。

3:将 bing.crt 文件导入刚建的keystore.jks.

keytool -import -alias bing? ?-keystore keystore.jks? -file? bing.crt

好了,现在可以用此 keystore.jks 来读取https://cn.bing.com网页了。主程序参照上篇用cacerts 读取https 网页。经验证,这个证书可以打开所有微软bing搜索的网页。

运行javac 程序时,必须要指明此keystore文件的路径:

-Djavax.net.ssl.trustStore=/home/wzpad/java/keystore.jks? -Djavax.net.ssl.trustStorePassword=123456

经验证,完美打开网页,如删掉keystore.jks中bing指纹,则程序报错。或者用此证书打开除bing外的其他网页,如百度网页则报错。

删除命令:keytool? -delete -alias bing? -keystore keystore.jks

以下是我现在的理解:keystore是自己的私密,当然就不能对外发送。它的主要作用是产生公密 truststore ,这个密码才是用来向外界传递的。目标网页的指纹就是目标网页的truststore,认证过程就是用java内置的cacerts 与目标网页的truststore比对来判断是否一致。而 cacerts就是我们管理的外来网页truststore库,只不过是java帮我们先预置的。我们可以向cacerts中加入信任的指纹。cacerts是一个密码仓库,有很多指纹。keystore还有另一个作用就是认证某一个软件或者产品属于某一个keystore,keystore一经生成初始注册的信息是不能修改的。从而从keystore的所有权就能判断某个产品的所有权。所以发布的商业软件必跟着一个keystore文件。证明此软件的属性。?

另外要注意的是,这个cacerts是用来认证互联网上的外来网页用的。如果外来网页要认证我们的主机,就必须用此内部主机的truststore。当然我们要事先拷贝一份自己的truststore到此外来服务器作比对之用。此场情我想到的用处是公司服务器验证员工的电脑。特别说明此truststore不是cacerts .而是我们用我们的keystore生成的truststore.

上面我们用keystore.jks 来作为truststore用,所以可以成功,是因为里面导入的bing指纹是从 bing 网页下载的原版指纹,只是借用了keystore壳而已。如果你不嫌麻烦,你也可以把cacerts中的bing指纹先删除,再导入试试。不要理解错了。

66b9a0c4ce914aa4b016bb07e7d164b0.png

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 02:20:34  更:2022-09-15 02:20:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 10:04:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码