openssl이 "템플릿이 없습니다. 템플릿을 설정하십시오."라는 CSR 템플릿 오류를 생성합니다.

openssl이 "템플릿이 없습니다. 템플릿을 설정하십시오."라는 CSR 템플릿 오류를 생성합니다.

Amazon Linux AMI 2017.03.0 이미지에서 CSR을 생성하려고 합니다. test.key를 생성하기 위해 다음 명령을 실행합니다.

[root]# openssl genrsa -out test.key 2048
Generating RSA private key, 2048 bit long modulus
............+++
.........................+++
e is 65537 (0x10001)
[root]#

그런 다음 다음 명령을 실행합니다.

[root]# openssl req -new -sha256 -key test.key -out test.csr
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.
-----
No template, please set one up.
problems making Certificate Request
[root]#

"템플릿이 없습니다. 하나를 설정하십시오"는 openssl.conf 파일과 관련된 것 같습니다.

내 openssl 구성은 다음과 같습니다.

[root]# pwd
/etc/ssl
[root]# ls -al
total 12
drwxr-xr-x  2 root root 4096 Apr  3 22:53 .
drwxr-xr-x 82 root root 4096 Apr 21 10:54 ..
lrwxrwxrwx  1 root root   16 Jan 20 23:25 certs -> ../pki/tls/certs
-rw-r--r--  1 root root  138 Apr  3 22:53 openssl.cnf
[root]# cat openssl.cnf
[ ssl_client ]
basicConstraints = CA:FALSE
nsCertType = client
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth
[root]# rpm -q -a |grep openssl
openssl-1.0.1k-15.99.amzn1.x86_64
[root]#

openssl 템플릿 생성에 대한 정보가 많지 않은 것 같습니다. 누구든지 저를 도와주거나 예제나 튜토리얼에 대한 링크를 제공해 주실 수 있나요?

답변1

csr 작성시 ssl_client 섹션의 내용은 적용되지 않습니다. 이는 실제로 CSR에 서명할 때 CA가 인증서에 추가하고 섹션 이름으로 참조되는 x509v3 확장 속성입니다.

openssl x509 ... -extensions ssl_client

제목 필드를 작성해야 하는 경우 다음과 같은 방법을 사용해야 합니다.

openssl req -new -sha256 -key test.key -out test.csr -subj "/C=SM/ST=somecountry/L=someloc/O=someorg/OU=somedept/CN=exa‌​mple.com"

req및 섹션을 통해 req_distinguished_name기본값을 지정 하는 방법도 있습니다 . 에 지정하여 명령의 기본값을 req구성할 수 있습니다 . openssl req ...사양을 사용 req_distinguished_name하면 주제 DN 구성 요소에 대한 제한 사항을 설정하고 일반적으로 호출하는 대화형 CSR 생성에 대한 기본값을 설정할 수 있습니다 openssl req -new ....

기본값은 다음과 같이 설정할 수 있습니다.

[ req_distinguished_name ]
countryName_default             = SM
stateOrProvinceName_default     = somecountry
localityName_default            = someloc
...

명령줄 openssl을 사용하여 작업을 수행할 때 일반적으로 참조하는 두 가지 훌륭한 페이지가 있습니다.

https://jamielinux.com/docs/openssl-certificate-authority/appendix/root-configuration-file.html

https://www.phildev.net/ssl/opensslconf.html

관련 정보