一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java如何基于command調(diào)用openssl生成私鑰證書

Java如何基于command調(diào)用openssl生成私鑰證書

2020-08-05 12:20護(hù)花使者 Java教程

這篇文章主要介紹了Java如何基于command調(diào)用openssl生成私鑰證書,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

在windows環(huán)境下進(jìn)行的測試,前提條件,windows上需要先安裝openssl

配置環(huán)境變量,查看版本:

Java如何基于command調(diào)用openssl生成私鑰證書

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.io.*;
import java.util.Properties;
 
public class OpensslCommand {
  private static void runCMD(String[] CMD) {
    java.lang.Process process = null;
    try {
      process = Runtime.getRuntime().exec(CMD);
      ByteArrayOutputStream resultOutStream = new ByteArrayOutputStream();
      InputStream errorInStream = new BufferedInputStream(process.getErrorStream());
      InputStream processInStream = new BufferedInputStream(process.getInputStream());
      int num = 0;
      byte[] bs = new byte[1024];
      while ((num = errorInStream.read(bs)) != -1) {
        resultOutStream.write(bs, 0, num);
      }
      while ((num = processInStream.read(bs)) != -1) {
        resultOutStream.write(bs, 0, num);
      }
      String result = new String(resultOutStream.toByteArray(), "gbk");
      System.out.println(result);
      errorInStream.close();
      processInStream.close();
      resultOutStream.close();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (process != null) process.destroy();
    }
  }
  public static void main(String[] args) throws Exception {
    //需要指定openssl.exe路徑
    //java生成私鑰
    String[] cmdPrivateKey = {"cmd", "/C", "C:\\soft\\OpenSSL-Win64\\bin\\openssl.exe genrsa -out ca.key 2048"};
    //java生成證書請求
    String[] cmdCertificationReq = {"cmd", "/C", "C:\\soft\\OpenSSL-Win64\\bin\\openssl.exe req -new -key ca.key -out ca.csr -subj /C=CN"};
    //java生成證書
    String[] cmdCertification = {"cmd", "/C", "C:\\soft\\OpenSSL-Win64\\bin\\openssl.exe x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt"};
    runCMD(cmdPrivateKey);
    runCMD(cmdCertificationReq);
    runCMD(cmdCertification);
    Properties props=System.getProperties(); //系統(tǒng)屬性
    System.out.println("用戶的當(dāng)前工作目錄:"+props.getProperty("user.dir"));
  }
}

對應(yīng)目錄下可以生成:

Java如何基于command調(diào)用openssl生成私鑰證書

其中,ca.crt是自簽名證書文件。ca.key是私鑰。ca.csr只是生成證書的中間請求,是用來指定一些信息,這邊只指定國家為CN。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.cnblogs.com/chenmz1995/p/13401450.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 嫩草蜜桃| 扒开尿口 | 爱情岛论坛亚洲品质自拍视频 | 日韩欧美视频二区 | 91丝袜足控免费网站xx | 无套日出白浆在线播放 | 四虎欧美 | 色多多绿巨人视频 | 国产美女亚洲精品久久久久久 | 国产第一福利视频导航在线 | 高清一级做a爱免费视 | 91成人啪国产啪永久地址 | 国产成人精品高清在线 | 女同久久另类99精品国产 | 青青久在线视频免费观看 | 99热精品69堂国产 | 国产成人久久精品推最新 | 蜜桃视频在线观看www | 99人中文字幕亚洲区 | www.com日本| 日本免费观看95视频网站 | 美女靠逼的视频 | 国产91精品在线观看 | 亚洲欧美日韩国产精品影院 | 99av导航| 日本三级成人中文字幕乱码 | 亚洲成人网在线 | 成人啪啪漫画全文阅读 | 我与白丝同桌的故事h文 | 日韩在线 在线播放 | 亚洲一区二区精品推荐 | 国产老太婆hd老头 | 18美女光胸光屁屁洗澡 | 精品免费 | 91大神在线观看精品一区 | 日韩一区二区三区在线 | 国产福利视频一区二区微拍 | 日本亚洲娇小与黑人tube | 久久成人国产精品一区二区 | 我把校花黑色蕾丝胸罩脱了 | 国产新疆成人a一片在线观看 |