Kubernetes Ingress에서 사용하는 SSL 자체 서명 인증서를 PowerShell로 만듭니다.
4547 단어 SSLkubernetesTLS
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
같은 매개 변수는 선호하지만 어려운 것은 TextExtension
및 KeyUsage
매개 변수입니다.
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
TextExtension
:이 매개 변수는 CA의 인증서에 만들 인증서를 보여줍니다. 보통 자기 서명 증명서는 CA의 증명서일 필요는 없지만, 왠지 OpenSSL은 KeyUsage에 CertSign이 들어있는 경우 CA 증명서가 아니라고 증명서를 Reject 해 버린다 같기 때문에 포함하고 있다. 2.5.29.19
가 basicConstraints의 의미에서 pathlength=0
는이 인증서가 더 낮은 CA를 가질 필요가 없음을 나타냅니다. KeyUsage
: 기본적으로 KeyEncipherment,DigitalSignature
이지만 CertSign
를 추가합니다 이것으로 작성한 증명서는, 파일명을 지정해 실행 →
certmgr.msc
로 찾아낼 수 있다.관리 툴상의 증명서는 특별히 용도가 없기 때문에, 인스톨이 끝나면 지워 버려도 된다.
개인 키 설치
관리 도구에서 인증서를 마우스 오른쪽 단추로 클릭하여 내보내기...에서 개인 키를 내보내고 내보낸 .pfx
파일에 openssl
명령을 곱하여 키 데이터를 .pem
형식으로 검색합니다.
openssl pkcs12 -in flowlocal.pfx -nodes -out key.pem
(Windows에서는 개인 키를 내보낼 때 암호가 필요합니다)
꺼낸 .pem
를 kubectl
에 secret로 설치 :
kubectl create secret tls flowlocal-tls --cert=key.pem --key=key.pem
cert
와 key
는 같은 파일로 OK(한개의 파일에 양쪽을 넣어 둘 수 있다). 여기서는 flowlocal-tls
라는 이름으로 만들었습니다. EDIT: 이 방법으로 TLS 키로서 기능하지만, 공개키 파일안에 비밀키도 함께 들어가게 되어 미묘하게 기분이 나쁘기 때문에 주의. 궁금하다면 openssl
명령에 -nocerts
또는 -nokeys
를 주어 별도의 파일로 만듭니다.
개인 키를 Ingress에서 사용
이 이후는 보통 TLS 열쇠와 다른 곳은 없다. 단순히 TLS의 보안으로 지정하면 Ingress 트래픽은 자동으로 키로 암호화됩니다.
openssl pkcs12 -in flowlocal.pfx -nodes -out key.pem
kubectl create secret tls flowlocal-tls --cert=key.pem --key=key.pem
이 이후는 보통 TLS 열쇠와 다른 곳은 없다. 단순히 TLS의 보안으로 지정하면 Ingress 트래픽은 자동으로 키로 암호화됩니다.
tls:
- hosts:
- flow.local
secretName: flowlocal-tls
그러나 여기
hosts
와 New-SelfSignedCertificate
에 주어진 DnsName
는 일치해야합니다.
Reference
이 문제에 관하여(Kubernetes Ingress에서 사용하는 SSL 자체 서명 인증서를 PowerShell로 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okuoku/items/fd6301df0ad520cef656텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)