나는 인증서 체인을 구성하려고 노력해 왔습니다. 인증 기관/CA에 제출한 개인 키( privatekey.pem
)와 CSR( ) 이 있습니다 .csr.pem
CA의 인증서를 가져와 그 내용을 파일( ca.crt
)에 담았습니다. ca.crt
한 줄로 시작한 -----BEGIN CERTIFICATE-----
다음 해시된 항목 으로 시작 합니다. 그래도 여전히 인증서 체인이 필요하며 여기에서 인증서 체인 예제를 살펴보세요.http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert
나는 내가 가지고 있는 것이 privatekey.pem
루트 인증서(맞죠?)이고 ca.crt
해당 링크의 샘플 체인에 있는 중간 인증서 1이라고 가정합니다. 그렇다면 다른 중간 인증서는 어떻게/어디에서 얻을 수 있나요? 제가 이것을 잘못 이해하고 있다면 주문을 어떻게 받거나 생성합니까?
답변1
여기서 여러 측면을 혼동하고 있는 것 같습니다. 최종 결과를 얻기 위해 필요한 것은
- 당신의 개인 키
- 동일한 CA를 사용하는 모든 사람에게 동일한 루트 인증서(ca.crt가 그런 것 같습니다)
- a/일반적으로 CA 사이트에서 찾을 수 있는 일부 중간 인증서
- 제출된 CSR의 결과가 귀하의 인증서입니다.
2-4가 인증서 체인을 구성합니다.
답변2
애드론,
privatekey.pem은 CA에 요청한 인증서의 개인 키입니다.
루트 CA 인증서는 인증서를 발급한 특정 PKI의 최상위 인증서이며 자체 서명된 인증서가 됩니다.
중간 CA 인증서는 루트 CA 아래의 하위 CA에서 가져온 것입니다.
예를 들어 example.com에는 exampleRootCA라는 루트 CA와 exampleSubCA라는 하위 CA가 있습니다.
exampleSubCA는 SSL 인증서 AdronSSL을 발급합니다.
인증서 체인은 AdronSSL -> exampleSubCA -> exampleRootCA입니다.
도움이 되었기를 바랍니다
답변3
아래 명령 1-5는 인증서 체인을 생성하는 데 도움이 됩니다.
RootCA의 개인 키 및 자체 서명 인증서를 생성하는 명령
openssl req -new -nodes -newkey rsa:2048 -sha256 -days 100 -keyout rootPrivateKey.key -x509 -out rootCACertificate.pem
참고: RootCA 인증서를 .crt에서 .pem 형식으로 변환하는 명령
openssl x509 -outform pem -in rootCACertificate.pem -out rootCACertificate.crt
중간 CA의 개인 키 및 인증서 서명 요청을 생성하는 명령
openssl req -new -nodes -newkey rsa:2048 -keyout 중간CAPrivateKey.key -out 중간CACertificateSignRequest.csr
RootCA가 서명한 중간 CA의 인증서를 생성하는 명령
openssl x509 -req -sha256 -일 100 -in 중간CACertificateSignRequest.csr -CA rootCACertificate.pem -CAkey rootPrivateKey.key -CAcreateserial -extfile domain.ext -out 중간CACertificate.crt
domain.ext의 내용은 다음과 같습니다.
subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer basicConstraints = critical, CA:true keyUsage = critical, digitalSignature, cRLSign, keyCertSign
서버의 개인 키 및 서명 요청을 생성하는 명령
openssl req -new -nodes -newkey rsa:2048 -keyout serverPrivateKey.key -out serverSignRequest.csr
IntermediateCA가 서명한 서버의 인증서를 생성하는 명령
openssl x509 -req -sha256 -일 100 -in serverSignRequest.csr -CA 중간CACertificate.crt -CAkey 중간CAPrivateKey.key -CAcreateserial -extfile domain.ext -out serverCertificate.crt
domain.ext의 내용은 다음과 같습니다.
basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [ alt_names ] DNS.1 = localhost
참고: .key 형식의 서버 개인 키를 .PEM 형식으로 변환하는 명령입니다.
openssl rsa -in serverPrivateKey.key -out serverPrivateKey.pem
여기서 루트 CA는 자체 서명됩니다. 따라서 브라우저는 이를 인식하지 못합니다. 브라우저가 인식되도록 하려면 IE -> 도구 -> 인터넷 옵션 -> 콘텐츠 -> 신뢰할 수 있는 인증 기관 섹션에서 루트 CA 가져오기를 열고 중간 인증 기관 섹션에서 중간 CA 가져오기를 엽니다.
서버 인증서와 서버의 개인 키는 귀하가 웹 페이지를 서비스하는 서버에 보관됩니다.
웹페이지를 요청하면 서버 인증서가 인증서 체인에 대해 검증되는 것을 확인할 수 있습니다.