Java 스크립트에서 keytool을 호출하여 자체 서명 된 인증서를 만들고 싶습니다. 다음은 내가 가지고있는 문제점을 포함하고있는 간단한 코드입니다 :Linux에서 Runtime.getRuntime(). exec()와 함께 keytool 사용
public class Tester {
public static void main(String[] args) {
String[] cmd = {
"/bin/sh",
"-c",
"keytool",
"-genkey",
"-dname",
"\"C=US,CN=CU,L=ABC,O=ABC_Univ,OU=ABC_Pro\"",
"-keysize",
"1024",
"-alias",
"testkeypairs",
"-keyalg",
"RSA",
"-sigalg",
"SHA1withRSA",
"-keystore",
"testkeystore",
"-storepass",
"abcdef",
"-keypass",
"abcdef"
}
Process testProc = Runtime.getRuntime().exec(cmd);
}
실행했을 때 오류가 없습니다. 그러나 그것은 나에게 키 스토어를주지 않았다. 내 질문은 :
키 도구에 의해 생성 된 인증서는 그것이,
getinputstream()
를 사용하여 부모 프로세스에 공급해야하는 "서브 프로세스의 출력"으로 간주되지 않는 이유는 무엇입니까? 이 경우 다음 포스트에서 논의- , 나는 또한
Keytool usage with Runtime.getRuntime().exec() under Linux
프로그램
getinputstream()
일을 시도했다.
- Java 프로그램을 사용하여 자체 서명 된 인증서를 만드는 다른 방법이 있습니까?
저는 Java의 초보자이며 영어가 제 1 언어가 아닙니다. 나는 나의 질문을 명확하게 표현하기를 희망한다.
정확하게 무엇을 시도하고 있는지 모르지만 변경을 고려하십시오. 당신의 전술을 약간 :'exec'를 호출하여 keytool 바이너리를 호출하는 대신 프로그래머가 직접 키 스토어 생성 코드를 호출 해보십시오. http://stackoverflow.com/questions/5312559/how-do-i-programmatically-create-a-new-keystore – Gus
내가 원하는 건 프로그래밍 방식으로 자체 서명 된 인증서를 만드는 것입니다. Runtime.getRuntime.exec()를 사용하여 keytool을 호출 할 수 있다고 생각했는데, 다음 게시물을 살펴 보았습니다. [http://stackoverflow.com/questions/8308148/keytool-usage-with-runtime-getruntime-exec-under-linux ] 나는 그들의 방법을 시도했지만 인증서를 얻을 수 없었다. @Hariprasad –
@Gus 표준 java crypto API에서는 인증서 서명을 할 수 없습니다. 이를 위해서는 타사 라이브러리 (예 : BouncyCastle)를 사용해야합니다. – Jcs