java代码调用keytool生成证书

        StringBuffer cmd = new StringBuffer();
        cmd.append("C:\\jdk1.7.0_06\\bin\\");
        cmd.append("keytool -genkey -v -alias weblogicssl -keyalg RSA -keysize 1024 -validity 365 ");
        cmd.append("-keystore C:/weblogic.jks ");
        cmd.append("-keypass 123456789 -storepass 123456789 ");
        cmd.append("-dname \"CN=localhost,OU=cn,O=cn,L=cn,ST=cn,C=cn\"");
        Process ps = Runtime.getRuntime().exec(cmd.toString());


注意:jdk的路径中不能包含空格如D:\Program Files,这样的话java会自作聪明的将路径截断为D:\Program,从而找不到keytool.exe文件出错,

-dname \"CN=localhost,OU=cn,O=cn,L=cn,ST=cn,C=cn\"
此句中也不能包含任何空格,双引号的转义符必须要加,否则会执行出错
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Java 调用 HTTPS 接口的步骤如下: 1. 通过 Keytool 工具生成证书,或者使用第三方证书。如果是自己生成证书,需要将证书导入到 Java 安装目录下的 cacerts 文件中。 2. 在 Java调用 HTTPS 接口,需要使用 HttpsURLConnection 类,建立与 HTTPS 服务器的连接。 3. 创建 SSLContext 对象,用于创建 SSL Socket。 4. 创建 X509TrustManager 对象,用于实现自定义的证书校验逻辑。 5. 将 X509TrustManager 对象和 SSLContext 对象关联起来。 6. 设置 HttpsURLConnection 的 SSL Socket Factory,并且指定证书验证方式。 7. 发送 HTTPS 请求,并读取响应结果。 代码示例: ``` URL url = new URL("https://example.com/api"); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); SSLContext sslContext = SSLContext.getInstance("TLS"); TrustManager[] trustManagers = new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { // 不需要实现 } @Override public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { // 实现自定义的证书校验逻辑 } @Override public X509Certificate[] getAcceptedIssuers() { return null; } } }; sslContext.init(null, trustManagers, null); con.setSSLSocketFactory(sslContext.getSocketFactory()); con.setHostnameVerifier((s, sslSession) -> true); // 设置请求头等参数 con.setRequestMethod("POST"); con.setConnectTimeout(10000); con.setReadTimeout(10000); con.setDoOutput(true); // 发送请求 OutputStream os = con.getOutputStream(); os.write(requestBody.getBytes()); os.flush(); os.close(); // 读取响应 int responseCode = con.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { InputStream is = con.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); is.close(); } con.disconnect(); ``` 其中,X509TrustManager 的实现可以根据实际情况进行修改。HostnameVerifier 指定为接受任意主机名,因为有些 HTTPS 服务器的证书可能没有包含正确的主机名。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值