Kubernetes Ingress에서 사용하는 SSL 자체 서명 인증서를 PowerShell로 만듭니다.

4547 단어 SSLkubernetesTLS
... 자기 서명 증명서를 사용하는 것이 가장 어려운 시대군요 메모 그 1.

EDIT: secret에 비밀키와 공개키를 같은 파일로 넣어도 움직이지만, 같은 파일인 것은 미묘하게 혼동하기 때문에 주.

인증서 만들기



적절하게 PowerShell을 열고 New-SelfSignedCertificate 명령으로 만듭니다.
New-SelfSignedCertificate -DnsName "flow.local" -NotAfter (Get-Date).AddYears(50) `
 -CertStoreLocation "cert:\CurrentUser\My" -KeyLength 4096 -Type SSLServerAuthentication `
-TextExtension @("2.5.29.19 = {critical} {text}ca=1&pathlength=0") `
-KeyUsage CertSign,KeyEncipherment,DigitalSignature
KeyLength 같은 매개 변수는 선호하지만 어려운 것은 TextExtensionKeyUsage 매개 변수입니다.
  • TextExtension :이 매개 변수는 CA의 인증서에 만들 인증서를 보여줍니다. 보통 자기 서명 증명서는 CA의 증명서일 필요는 없지만, 왠지 OpenSSL은 KeyUsage에 CertSign이 들어있는 경우 CA 증명서가 아니라고 증명서를 Reject 해 버린다 같기 때문에 포함하고 있다. 2.5.29.19basicConstraints의 의미에서 pathlength=0는이 인증서가 더 낮은 CA를 가질 필요가 없음을 나타냅니다.
  • KeyUsage : 기본적으로 KeyEncipherment,DigitalSignature이지만 CertSign를 추가합니다
  • .

    이것으로 작성한 증명서는, 파일명을 지정해 실행 → certmgr.msc 로 찾아낼 수 있다.



    관리 툴상의 증명서는 특별히 용도가 없기 때문에, 인스톨이 끝나면 지워 버려도 된다.

    개인 키 설치



    관리 도구에서 인증서를 마우스 오른쪽 단추로 클릭하여 내보내기...에서 개인 키를 내보내고 내보낸 .pfx 파일에 openssl 명령을 곱하여 키 데이터를 .pem 형식으로 검색합니다.
    openssl pkcs12 -in flowlocal.pfx -nodes -out key.pem
    

    (Windows에서는 개인 키를 내보낼 때 암호가 필요합니다)

    꺼낸 .pemkubectl에 secret로 설치 :
    kubectl create secret tls flowlocal-tls --cert=key.pem --key=key.pem
    
    certkey 는 같은 파일로 OK(한개의 파일에 양쪽을 넣어 둘 수 있다). 여기서는 flowlocal-tls라는 이름으로 만들었습니다. EDIT: 이 방법으로 TLS 키로서 기능하지만, 공개키 파일안에 비밀키도 함께 들어가게 되어 미묘하게 기분이 나쁘기 때문에 주의. 궁금하다면 openssl 명령에 -nocerts 또는 -nokeys를 주어 별도의 파일로 만듭니다.

    개인 키를 Ingress에서 사용



    이 이후는 보통 TLS 열쇠와 다른 곳은 없다. 단순히 TLS의 보안으로 지정하면 Ingress 트래픽은 자동으로 키로 암호화됩니다.
  • htps : // 기주 b. 이 m / 두드려 / 네 xstst 리페 / bぉb / 10 아 709178cf368f0fd9bf0b4dbc3 아 d296에 90964 / 뭉뻑 s / 00tls-ぉ인가 l. 이나 ml#L65
  •     tls:
            - hosts:
                - flow.local
              secretName: flowlocal-tls
    

    그러나 여기 hostsNew-SelfSignedCertificate에 주어진 DnsName는 일치해야합니다.

    좋은 웹페이지 즐겨찾기