java下载https图片证书校验

1、导出网站证书

点击网站锁,右键另存为

或者命令下载证书

echo -n | openssl s_client -connect  www.baidu.com:8006 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >  baidu.cert

如果要下载链中的所有证书,可以使用-showcerts.但是,如果您只想下载服务器证书,则无需指定-showcerts
echo -n给服务器一个响应,以便释放连接
sed -ne’/ -BEGIN CERTIFICATE – /,/ – END CERTIFICATE- / p’删除有关证书链和连接详细信息的信息.这是将证书导入其他密钥库的首选格式.

2、java导入网站证书

/apprun/jdk/bin/keytool  -import   -trustcacerts    -alias   cacertsbaidu  -keystore /apprun/jdk/jre/lib/security/cacerts   -file /home/apprun/tmp/baidu.cer   -storepass changeit

此时命令行会 提示你输入cacerts证书库的密码,你敲入changeit就行了,这是java中cacerts证书 库的默认密码,

3、java下载图片

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class TEST{
    public static void main(String [] args) {
        download();
    };
    //@Test
    public static void download() {
        // 图片地址
        String strUrl = "https://***/antranceGuardPicture/15107664292_20211015095726.jpg";
        downloadImgByNet(strUrl, "/home/apprun/tmp/", "222.png");
    }

    /**
     * 抓取网上的图片
     *
     * @param imgSrc
     * @param filePath
     */
    public static void downloadImgByNet(String imgSrc, String filePath, String fileName) {
        try {
            URL url = new URL(imgSrc);
            URLConnection conn = url.openConnection();
            //设置超时间为3秒
            conn.setConnectTimeout(3 * 1000);
            //防止屏蔽程序抓取而返回403错误
            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
            //输出流
            InputStream str = conn.getInputStream();
            //控制流的大小为1k
            byte[] bs = new byte[1024];
            //读取到的长度
            int len = 0;
            //是否需要创建文件夹
            File saveDir = new File(filePath);
            if (!saveDir.exists()) {
                saveDir.mkdir();
            }
            File file = new File(saveDir + File.separator + fileName);
            //实例输出一个对象
            FileOutputStream out = new FileOutputStream(file);
            //循环判断,如果读取的个数b为空了,则is.read()方法返回-1,具体请参考InputStream的read();
            while ((len = str.read(bs)) != -1) {
                //将对象写入到对应的文件中
                out.write(bs, 0, len);
            }
            //刷新流
            out.flush();
            //关闭流
            out.close();
            str.close();
            System.out.println("下载成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 /apprun/jdk/bin/javac  TEST.java 

 /apprun/jdk/bin/java  TEST

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值