2015-08-17 2 views
0

Я пытаюсь автоматизировать процесс создания CSR с помощью OpenSSL с использованием java-кода. Я был в состоянии создать ключ, который был из этого кодаАвтоматизация OpenSSL с Java

pr = rt.exec("cmd /c cd "+directory1+" && " //change directory 
      + "set OPENSSL_CONF=c:\\OpenSSL-Win32\\bin\\openssl.cfg && " //setup 
      + "openssl genrsa -out "+directory2+input[i]+".key 2048 

(Первые 2 строки установить его, третий создает ключ) Но для того, чтобы создать часть CSR Мне нужно ввести вход. После ввода этого ...

"openssl req -new -key "+directory2+input[i]+".key -out "+directory2+input[i]+".key.csr 

(Четвертая строка кода), УМК (Если вводится вручную) запросит дополнительную информацию, такую ​​как страна, штат, город, компании и т.д. Я не знаю, как заставить его работать, чтобы я мог ввести ввод, который он запрашивает с помощью моей java-программы.

Вот основная часть в полном объеме

rt = Runtime.getRuntime(); 
    pr = rt.exec("cmd.exe"); 
    pr = rt.exec("cmd /c cd "+directory1+" && " //change directory 
      + "set OPENSSL_CONF=c:\\OpenSSL-Win32\\bin\\openssl.cfg && " //setup 
      + "openssl genrsa -out "+directory2+input[i]+".key 2048 &&" //generate key 
      + "openssl req -new -key "+directory2+input[i]+".key -out "+directory2+input[i]+".key.csr &&" 
      + countryName + " &&" 
      + state + " &&" 
      + locality + " &&" 
      + organization + " &&" 
      + unit + " &&" 
      + common + " &&" 
      + email + " &&" 
      + pass + " &&" 
      + company); 

Ниже этого я отправляю в командной строке. Он показывает, как я вручную вводил команду CSR и затем вручную отвечал на ее вопросы.

C:\OpenSSL-Win32\bin>openssl req -new -key C:\Keys\rkm_test.key -out C:\keys\rkm 
_test.key.csr 
Loading 'screen' into random state - done 
You are about to be asked to enter information that will be incorporated 
into your certificate request. 
What you are about to enter is what is called a Distinguished Name or a DN. 
There are quite a few fields but you can leave some blank 
For some fields there will be a default value, 
If you enter '.', the field will be left blank. 
----- 
Country Name (2 letter code) [AU]:US 
State or Province Name (full name) [Some-State]:New York 
Locality Name (eg, city) []:Yonk 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:AAA 
Organizational Unit Name (eg, section) []:InfoSec 
Common Name (e.g. server FQDN or YOUR name) []:aaa 
Email Address []:[email protected] 

Please enter the following 'extra' attributes 
to be sent with your certificate request 
A challenge password []:aaa_123 
An optional company name []:aaa 
+0

попробуйте аргумент' -subj'. некоторые примеры [здесь] (http://www.shellhacks.com/en/HowTo-Create-CSR-using-OpenSSL-Without-Prompt-Non-Interactive) и [здесь]) https://www.madboa.com/выродок/OpenSSL /). и попробуйте пароль так: '-password pass: mypasswordhere' – lispHK01

ответ