국가 / 일반 이름 프롬프트를 건너 뛰는 openssl을 만들 수 있습니까?
다음과 같은 프롬프트를 건너 뛰는 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}
@indiv 덕분에
이 가이드 에 따르면 -subj
, 예를 들어
-subj '/CN=www.mydom.com/O=My Company Name LTD./C=US'
또 다른 해결책은 구성 파일에서 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)를 지정하는 혼합 방식이 가능하다고 생각하는 것이 직관적 일 수 있습니다 . 그러나 그것은 작동하지 않습니다.
나는 시나리오를 테스트했습니다.
- put C, ST, L, O and OU in the openssl.cnf section
req_distinguished_name
and - ran
openssl req
with-subj=/CN=www.mydom.com
.
openssl complained that mandatory Country Name field is missing and the generated certificate just had CN in the subject line. Seems like -subj
option completely overrides the subject line and does not allow updating a single field.
This makes all following three approaches of supplying subject fields exclusive to each other:
- Prompts
- config file
-subj
option
'Programing' 카테고리의 다른 글
Java에서 고유하고 짧은 파일 이름을 생성하는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.01 |
---|---|
git로 파일을 어떻게 커밋 할 수 있습니까? (0) | 2020.11.01 |
MS Word에 숭고한 텍스트 2 붙여 넣기 (0) | 2020.11.01 |
How can moment.js be imported with typescript? (0) | 2020.11.01 |
URL 줄 끝 또는 "/"문자와 일치하는 정규식 (0) | 2020.10.31 |