SubjectAltName
이 항목을 추가/수정하면 알 수 있습니다.openssl.cnf
실현될 수 있다, 하지만 매번 파일을 수정하지 않고도 이 작업을 수행할 수 있는 방법이 있습니까?
답변1
openssl.cnf
어떤 식으로든 파일을 망칠 필요가 없습니다.
다음 명령은 SAN을 사용하여 이메일에 대한 자체 서명된 인증서를 생성하는 방법을 보여줍니다 [email protected]
.
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout example.key -out example.crt -subj '/CN=Nobody' \
-extensions san \
-config <(echo '[req]'; echo 'distinguished_name=req';
echo '[san]'; echo 'subjectAltName=email:[email protected]')
여기서의 비결은 OpenSSL이 기본 파일 없이 실행 [req]
되기에 충분한 최소한의 섹션을 포함하는 것입니다.openssl.cnf
OpenSSL ≥ 1.1.1에서는 다음과 같이 단축할 수 있습니다.
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout example.key -out example.crt -subj '/CN=Nobody' \
-addext 'subjectAltName=email:[email protected]'
여기서는 새 옵션을 사용하므로 더 이상 및 가 -addext
필요하지 않습니다 .-extensions
-config
생성된 인증서의 내용을 확인하는 것을 잊지 마세요.
openssl x509 -noout -text -in example.crt
또한보십시오:https://security.stackexchange.com/a/198409/133603그리고https://stackoverflow.com/a/41366949/19163
답변2
상단 에 openssl.cnf
항목을 추가하고 ( SAN = "email:copy"
환경 변수가 설정되지 않은 경우 기본값 포함) 해당 섹션에서 사용하세요. 이제 기본 주소도 사용하는지 확인하세요. (에서 적응SAN
SubjectAltName = ${ENV::SAN}
SAN="email:copy, email:adress@two" openssl ...
email:copy
여기)