当前位置:   article > 正文

(备份)用jdk自带truststore 文件cacerts 读取https网页文件_set jvm_args=-djavax.net.ssl.truststore="%java_hom

set jvm_args=-djavax.net.ssl.truststore="%java_home%\lib\security\cacerts" -

cacerts 文件路径:运行java -verbose后, 开始第一行就是java jdk主路径,主路径下/lib/security/cacerts

我的完整路径:/usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts 

cacerts 是加密文件,默认密码为changeit

好了,最后一步修改eclipse  run 运行输入参数:-Djavax.net.ssl.trustStore=/usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit

下面有设置截图,当然 如用命令行javac 就直接带上这一串参数。

 SSL网络编程都是由SSLServerSocketFactory    SSLSocketFactory 两个类转换到 ServerSocket,Socket来完成,最终都归到socket 编程。所以我们只要理解了网络传输的各种协议,就可用socket 结合协议编出各种网络程序。经查才知道chrome没有truststore信任库,本来想拿chrome 浏览器的truststore 库来试试能不能也可以读https 。但是完全可以把浏览器下载的网页指纹加在cacerts中,作为truststore使用。先搞清楚openssl和https协议后,慢慢分解这个https认证过程。我一定要搞一个socket 版的https认证程序。戏称,要把java c 化。

读网页文件有两种思路,一种是用socket ,   另一种是用httpconnection.  但第一种要自己写http,https请求协议。后一种java已封装好了,直接拿来用,但输出没有第一种灵活全面。

代码如下 ,留存参考

d63694f08a424a24b6cddb57b0575986.png

35c849b441f54cd3be3d36a3ea68e0c8.png

  1. import java.io.*;
  2. import java.net.*;
  3. import javax.net.ssl.SSLSocketFactory;
  4. public class Sslclient {
  5. public static void main(String[] args) {
  6. SSLSocketFactory ssf=(SSLSocketFactory)SSLSocketFactory.getDefault();
  7. try {
  8. Socket sc=ssf.createSocket("cn.bing.com",443);
  9. OutputStream os=sc.getOutputStream();
  10. InputStream is=sc.getInputStream();
  11. os.write("GET / HTTP/1.1\r\n".getBytes());
  12. os.write("Host:cn.bing.com\r\n".getBytes());
  13. os.write("Connection:close\r\n\r\n".getBytes());
  14. os.flush();
  15. InputStreamReader isr=new InputStreamReader(is,"UTF-8");
  16. int k;
  17. String s="";
  18. do{
  19. k=isr.read();
  20. s=s+(char)k;
  21. }while(k!=-1);
  22. System.out.print(s);
  23. } catch (UnknownHostException e) {
  24. // TODO Auto-generated catch block
  25. e.printStackTrace();
  26. } catch (IOException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. }
  31. }

 

 

 

 

 

 

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/372343?site
推荐阅读
相关标签
  

闽ICP备14008679号