![자체 CA 인증서로 서명된 여러 DNS 항목이 포함된 SSL 인증서를 만드는 방법](https://rvso.com/image/1476393/%EC%9E%90%EC%B2%B4%20CA%20%EC%9D%B8%EC%A6%9D%EC%84%9C%EB%A1%9C%20%EC%84%9C%EB%AA%85%EB%90%9C%20%EC%97%AC%EB%9F%AC%20DNS%20%ED%95%AD%EB%AA%A9%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20SSL%20%EC%9D%B8%EC%A6%9D%EC%84%9C%EB%A5%BC%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
자체 제작 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
옵션의 작동 방식을 설명합니다.