명령줄을 통해 SSL 인증서에 여러 이메일 주소를 추가하는 방법은 무엇입니까?

명령줄을 통해 SSL 인증서에 여러 이메일 주소를 추가하는 방법은 무엇입니까?

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"환경 변수가 설정되지 않은 경우 기본값 포함) 해당 섹션에서 사용하세요. 이제 기본 주소도 사용하는지 확인하세요. (에서 적응SANSubjectAltName = ${ENV::SAN}SAN="email:copy, email:adress@two" openssl ...email:copy여기)

관련 정보