다양한 인증서를 단일 .pem으로 결합하는 방법


35

방금 다른 SSL 형식을 설명하는 이 위대한 스레드를 읽었습니다 .

이제 본질적 으로 PEM 파일을 분할하는 방법 의 반대를 찾고 있습니다.

통합 할 파일이 4 개 있는데, 원래 Apache 용으로 작성되었습니다.

  • SSLCertificateFile
  • SSLCertificateKeyFile
  • SSLCertificateChainFile
  • SSLCACertificateFile

내가 가장 궁금한 점은 통합 탈회 제 파일의 순서입니다. 이것이 중요합니까? EG. 난 그냥한다면 cat그들은으로, 위의 표시 순서대로 함께 .PEM , 그것은 유효한 것, 또는 그들은 특정 방법을 주문해야?

참고로,이 인증서를 SimpleSAMLphp 에서 결합 된 단일 .pem 으로 사용하기 위해이 작업을 수행하고 있습니다.


주문은 개인 키, 중간 인증서 및 인증서 여야합니다.
Zoredache

CA는 체인의 루트가 아니므로 통합 파일에서 체인을 따라갈 수 있습니까? 아니면 완전히 생략 할 수 있습니까?
quickshiftin

선택 사항것처럼 들리지만 지금은 롤하지 않을 것입니다.
quickshiftin

답변:


43

RFC 4346 에 따르면 순서는 중요 합니다.

다음은 RFC에서 직접 인용 한 것입니다.

  certificate_list
    This is a sequence (chain) of X.509v3 certificates.  The sender's
    certificate must come first in the list.  Each following
    certificate must directly certify the one preceding it.  Because
    certificate validation requires that root keys be distributed
    independently, the self-signed certificate that specifies the root
    certificate authority may optionally be omitted from the chain,
    under the assumption that the remote end must already possess it
    in order to validate it in any case.

이 정보를 기반으로 서버 인증서가 먼저 온 다음 중간 인증서와 루트 신뢰할 수있는 기관 인증서 (자체 서명 된 경우)가 뒤 따릅니다. 개인 키에 대한 정보를 찾을 수 없지만 pem의 개인 키는 키워드가있는 아래 텍스트로 시작하고 끝나기 때문에 쉽게 식별 할 수 있기 때문에 중요하지 않다고 생각 PRIVATE합니다.

 -----BEGIN RSA PRIVATE KEY-----
 -----END RSA PRIVATE KEY-----

2
cat site.crt root.crt site.key> site.pem
curveorzos

6

다음을 사용하여 결합하는 명령이 있습니다. cat

cat first_cert.pem second_cert.pem > combined_cert.pem

3
두 인증서를 연결하는 방법에 대한 답변이지만 Apache의 인증서를 통합 / 연결하는 방법은 아닙니다.
asdmin

이것은 실제로 질문에 대답하는 것이 아니며 허용되는 대답으로 충분합니다. 원래 포스터가 고양이를 사용하는 것에 대해 이야기했듯이 다른 연결 방법에 대한 추가 정보를 제공합니다.
tidileboss

2
귀하의 답변에는 파일을 어떤 순서 로 연결 해야하는지 표시하지 않습니다 ( "first_cert.pem"및 "second_cert.pem"만 있음). 정답은 다음과 같습니다cat my_site.pem ca_chain.pem my_site.key > combined_cert.pem
Doktor J
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.