[이슈(ISSUE)]
Nginx 에서 상호인증(Client 인증)을 지원한다.
Client 인증서가 서로 다른 RootCA를 가졌거나, 서로 다른 self-signed 인증서인 경우.
Nginx는 서로 다른 여러 인증서를 인증해줄 수 있을것인가?
[검증 결과]
* 항목 : nginx의 SSL Config의 "ssl_client_certificate"
* 항목 : nginx.ingress의 "nginx.ingress.kubernetes.io/auth-tls-secret" (Kubernetes)
Nginx의 forum, trac 에 따르면...
위의 항목은 "하나의 파일에 여러 인증서를 포함할 수 있습니다."
&& "여러 클라이언트 인증서를 인증해줄 수 있습니다. "
예를들어, (인증서2개를 하나의 인증서 파일로 합침)
-----BEGIN CERTIFICATE-----
<인증서1 content>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<인증서2 content>
-----END CERTIFICATE-----
그러나, '동일한 subject'를 가진 인증서는 작동하지 않습니다.
만약 동일한 subject를 가진 인증서가 한 파일에 묶인다면!? 앞에 작성된 인증서만 인증이 됩니다.
(subject가 다르다면 둘 다 인증 가능)
Q. 추가 확인 필요 이슈.
몇 개의 인증서를 한 파일에 묶을 수 있나? > 확인이 필요합니다.
[검증 테스트 과정]
Client.crt와 Client3.crt 는 같은 Subject를 가진다.
Client1.crt (Subject: C=KR, CN=iUpdate)
Client2.crt (Subject: C=KR, L=Default City, O=Default Company Ltd, CN=iUpdate)
Client3.crt (Subject: C=KR, CN=iUpdate)
ALL_CA.crt (cat client1.crt client2.crt client3.crt > ALL_CA.crt)
ALL_CA2.crt(cat client2.crt client3.crt client1.crt > ALL_CA2.crt)
[서버 설정]
Ingress 생성 설정
nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
nginx.ingress.kubernetes.io/auth-tls-secret: "namespace/secret_file"
Secret 파일 설정
Ca.crt는 ALL_CA.crt or ALL_CA2.crt파일을 base64 encoding 값
apiVersion: v1
data:
ca.crt: <ALL_CA.crt or ALL_CA2.crt base64 encoding>
kind: Secret
metadata:
name: secret_file
namespace: namespace
type: Opaque
[클라이언트 설정]
[Test Case]
서버 적용 인증서 | Client1.crt | Clien2t.crt | Client3.crt |
ALL_CA.crt (Client1>Client2>Client3) | 성공 | 성공 | 실패 |
ALL_CA2.crt (Client2>Client3>Client1) | 실패 | 성공 | 성공 |
여러개의 인증서를 합친 인증서를 사용하면,
여러 인증서를 인증해줄 수 있다!!
(단, Subject가 동일하면 앞에 설정된 인증서만 인증 해줄수 있다.)
참고자료.
https://github.com/kubernetes/ingress-nginx/issues/4234
'IT Knowledge > 보안' 카테고리의 다른 글
How to create self-signed wildcard certificate(OpenSSL) (0) | 2021.10.01 |
---|---|
OpenSSL을 사용하여 self-signed 인증서 체인 만들기 (0) | 2021.09.25 |
OpenSSL Self-signed 인증서 만들기(create) (4) | 2021.09.17 |
CentOS 7 Standard 보안 조치(security) (0) | 2021.08.27 |
Linux 로그인 메시지(CentOS, issue) (2) | 2021.04.14 |
댓글