자체 CA 인증서로 서명된 여러 DNS 항목이 포함된 SSL 인증서를 만드는 방법

자체 CA 인증서로 서명된 여러 DNS 항목이 포함된 SSL 인증서를 만드는 방법

자체 제작 CA 인증서로 서명된 여러 subjectAltName이 포함된 SSL 인증서를 생성하는 데 도움이 필요합니다.

내가 필요한 것:

저는 OSX 10.10.5를 사용하고 있습니다.

다음 대체 이름을 가진 다른 SSL 인증서에 서명하는 데 사용하는 myCA.cer이 있습니다.

(IP가 대체 이름이 될 수 있는지 확실하지 않지만…)

  DNS.1 = foo.bearden.local
  DNS.2 = www.bearden.local
  DNS.3 = 192.168.1.58

이미 myCA.cer이 있는 iPhone으로 이 인증서를 가져와야 합니다. 그래야 아이폰 OS에서 검증이 되겠죠.

내가 하는 일:

다음 쉘 스크립트를 실행합니다.

cat > ./cust.cnf <<-EOF
  [req]
  distinguished_name = req_distinguished_name
  x509_extensions = v3_req
  prompt = no
  [req_distinguished_name]
  CN = *.bearden.local/ CN=192.168.1.58
  [v3_req]
  keyUsage = keyEncipherment, dataEncipherment
  extendedKeyUsage = serverAuth
  subjectAltName = @alt_names
  [alt_names]
  DNS.1 = foo.bearden.local
  DNS.2 = www.bearden.local
  DNS.3 = 192.168.1.58
EOF

openssl genrsa -out foo.key 2048 -config ./cust.cnf && \
openssl req -new -out foo.csr -key foo.key -config ./cust.cnf && \
openssl x509 -req -sha256 -in foo.csr -extfile ./cust.cnf -out foo.crt -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial

문제/질문:

1 -- CN의 와일드카드가 작동하지 않습니다(키체인에 전체 신뢰 옵션을 설정했는데도 Google 크롬에서 여전히 신뢰할 수 없다고 표시됩니다).

2 -- 키체인에 인증서를 추가하면(myCA.cer이 이미 있음) 유효하고 신뢰할 수 있는 것으로 인식되지만 인증서 자체(foo.crt)에는 구성에서 언급한 대체 DNS 이름이 없습니다.

이러한 종류의 인증서에 대한 여러 Alt DNS 이름을 얻을 수 있도록 도와주세요.

감사합니다!

답변1

다음은 이를 작동시키기 위해 수행해야 했던 변경 사항입니다(Steffen Ullrich에게 감사드립니다).

openssl x509 -req -sha256 -in foo.csr -extfile ./cust.cnf -extensions v3_req -out foo.crt -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial

여기는openssl 문서-extfile-extensions옵션의 작동 방식을 설명합니다.

관련 정보