openssl cli에서 subjectAltName을 어떻게 지정합니까?


9

자체 서명 SSL 인증서를 생성 중입니다.

$ openssl req -x509 -newkey rsa:2048 -subj 'CN=example.com'

작성 시간에 subjectAltName 도 지정하고 싶지만 openssl 맨 페이지에서이를 수행하는 방법에 대한 정보를 찾을 수 없습니다.


2
명령 행 스위치가 없습니다. 구성 파일에 파일을 작성한 다음이 구성 파일을 사용해야합니다.
Steffen Ullrich

답변:


4

subjectAltName을 다음과 같이 임시 파일에 작성하십시오 ( hostextfile 이라고 이름 지정 )

basicConstraints=CA:FALSE
extendedKeyUsage=serverAuth
subjectAltName=email:my@other.address,RID:1.2.3.4

"-extfile"옵션을 통해 openssl 명령으로 링크하십시오.

openssl ca -days 730 -in hostreq.pem -out -hostcert.pem -extfile hostextfile

1
나는 그것이 맞다고 믿는다. X509v3 주제 대체 이름 : DNS : kb.example.com, DNS : helpdesk.example.com
quadruplebucky

설명을 사용 했습니다 .
Viktor

3

openssl명령은 구성 파일을 먼저 쓰지 않고 subjectAltName과 같은 확장명을 포함시키는 방법을 제공하지 않습니다. 모든 것을 자동으로 수행하는 간단한 유틸리티를 작성했습니다. github에서 사용할 수 있습니다 : https://github.com/rtts/certify

사용 예 :

./certify example.com www.example.com mail.example.com

그러면 example.com.crtexample.com, www.example.com 및 mail.example.com의 주체 대체 이름을 가진 인증서가 포함 된 파일이 생성됩니다 .


0

SubjectAltName으로 자체 서명 된 인증서 작성

cd /etc/ssl

cat > my.conf <<- "EOF"
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=UA
ST=Dnepropetrovskaya
L=Kamyanske
O=DMK
OU=OASUP
emailAddress=webmaster@localhost
CN = www.dmkd.dp.ua

[ req_ext ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[ alt_names ]
DNS.0 = www.dmkd.dp.ua
DNS.1 = dmkd.dp.ua

EOF

# Create key
openssl genrsa -des3 -out server.key.secure 2048
# Disable secret phrase for key
openssl rsa -in server.key.secure -out server.insecure.key
# Create request certificate file with params from file my.conf
openssl req -new -key server.insecure.key -out server.csr -config my.conf
# Create certificate with params from file my.conf
openssl x509 -req -days 365 -in server.csr -signkey server.insecure.key -out server.crt -extensions req_ext -extfile my.conf
# Check request file and certificate for SubjectAltName precense
openssl req -text -noout -in server.csr
openssl x509 -in server.crt -text -noout

0

여기에 정보를 사용했지만 브라우저를 만족시키는 데 필요한 정보로 얇게 만들었습니다.

x509 v3 확장명 옵션 파일 :

echo "subjectAltName = @alt_names

[alt_names]
DNS.1 = www.example.com" > v3.ext

외부 키 파일 :

openssl genrsa -out www.example.com.key 2048

CA 서명 요청 : (CA 키와 인증서가 있다고 가정)

openssl req -new -key www.example.com.key -subj "/CN=www.example.com" -out www.example.com.csr

인증서 작성 요청에 서명하고 x509 확장 데이터를 포함하십시오.

openssl x509 -req -in www.example.com.csr -CA ca.example.com.crt -CAkey ca.example.com.key -CAcreateserial -out www.example.com.crt -days 500 -sha256 -extfile v3.ext
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.