다음과 같은 프롬프트를 건너 뛰는 openssl을 만드는 방법이 있습니까?
Country Name (2 letter code) [US]:
Organization Name (eg, company) [My Company Name LTD.]:
Common Name (eg, YOUR name) [something]:
인증서를 만드는 동안
openssl req -config openssl.cnf -new -x509 ...
해당 매개 변수가 openssl.cnf
파일에 제공된다는 사실을 고려하면
예 :
countryName = Country Name (2 letter code)
countryName_default = US
countryName_min = 2
countryName_max = 2
0.organizationName = Organization Name (eg, company)
0.organizationName_default = My Company Name LTD.
commonName = Common Name (eg, YOUR name)
commonName_max = 64
commonName_default = ${ENV::CN}
답변
답변
또 다른 솔루션은 구성 파일에서 prompt
지시문을 사용하는 것입니다.
참조 OpenSSL을 : 구성 파일 형식
prompt
값으로 설정
no
하면 인증서 필드 프롬프트가 비활성화되고 구성 파일에서 직접 값을 가져옵니다. 또한distinguished_name
및attributes
섹션 의 예상 형식을 변경합니다 .
distinguished name
및attribute
섹션 에는 두 가지 형식이 있습니다.프롬프트 옵션이로 설정된
no
경우 이러한 섹션은 필드 이름과 값으로 만 구성됩니다 . 예 :
CN=My Name
OU=My Organization
emailAddress=someone@somewhere.org
이를 통해 외부 프로그램 (예 : GUI 기반)이 모든 필드 이름과 값이 포함 된 템플릿 파일을 생성하고
req
.또는 프롬프트 옵션이 없거나 no로 설정되지 않은 경우 파일에 필드 프롬프트 정보가 포함됩니다. 다음과 같은 형식의 행으로 구성됩니다.
fieldName="prompt"
fieldName_default="default field value"
fieldName_min= 2
fieldName_max= 4
답변
구성 파일을 생성하고 [req] 섹션에 prompt = no를 입력 할 수 있습니다.
예를 들면 :
[req]
prompt = no
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
C = US
ST = California
L = Los Angeles
O = Our Company Llc
#OU = Org Unit Name
CN = Our Company Llc
#emailAddress = info@example.com
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com
그런 다음 예를 실행하십시오.
openssl req -new -sha256 -config THATFILE.conf -key example.com.key -out example.com.csr
답변
혼합 접근 방식은 지원되지 않습니다.
openssl.cnf에 일부 정적 필드를 넣고 -subj
옵션을 통해 일부 (CN)를 지정하는 혼합 방식이 가능하다고 생각하는 것이 직관적 일 수 있습니다 . 그러나 그것은 작동하지 않습니다.
나는 시나리오를 테스트했습니다.
- openssl.cnf 섹션에 C, ST, L, O 및 OU를 입력
req_distinguished_name
하고 openssl req
와 함께 실행 되었습니다
-subj=/CN=www.mydom.com
.
openssl은 필수 국가 이름 필드가 누락되었으며 생성 된 인증서의 제목 줄에 CN이 있다고 불평했습니다. -subj
옵션이 제목 줄을 완전히 무시하고 단일 필드 업데이트를 허용하지 않는 것 같습니다 .
이것은 서로 배타적 인 주제 필드를 제공하는 다음 세 가지 접근 방식을 모두 만듭니다.
- 프롬프트
- 구성 파일
-subj
선택권
답변
-batch
선택적 매개 변수는 발생 openssl req
정보 필드의를 묻는 메시지가 표시되지 명령을. 자체 서명 된 인증서의 자동화를 위해 구성 파일없이 이런 방식으로 사용합니다.
도움말에 나열되어 있습니다.
openssl help req
...
...
-batch Do not ask anything during request generation