centos8 에서 nginx@1.20.1 를 사용했다.
인증서를 발급받은 업체로부터 인증서키와
아파치용, 엔진엑스용으로 인증서를 받았다.
아파치 용도는 서버인증서, 체인인증서, 루트인증서 가 나눠져 있으며
엔진엑스 용도는 세 인증서 합쳐져 있다.
- 인증서 파일을 열어보면...
아래와 같이 CERTIFICATE가 하나이거나 두개 이상 들어있는 것을 확인할 수 있다.
-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE-----
받은 그대로 엔진엑스 인증서를 설정했지만 적용 되지 않았다.
인증서를 합칠 때 순서가 서버->체인>루트 순서로 되야 하는데
순서가 맞지 않아 문제였다.
직접 3개의 인증서를 합쳐주고 설정하면 잘 적용된다.
인증서들의 확장자는 중요하지 않다. pem, crt 등등... 업체에서 주기 나름..
Nginx 용도의 인증서 만드는 방법
- 인증서 합체
cat server.pem chain.pem root.pem > bundle.pem
- 합체 확인
합체를 하고 합체된 파일을 열어보면 아래와 같이 END 와 BEGIN 이 같은 라인에 있을 경우
-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE-----
라인을 나눠줘야 한다.
-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgINAe5fIh38YjvUMzqFVzANBgkqhkiG9w0BAQsFADBMMSAw...
-----END CERTIFICATE-----
- nginx 설정 파일
server {
listen 443 ssl;
# 인증서가 지원하는 도메인
server_name one.superpower.com;
# 개인키 파일 지정
ssl_certificate_key /파일경로/cra.key;
# 서버인증서+체인+루트 통합 unified 파일 지정)
ssl_certificate /파일경로/bundle.pem;
# 서버 환경에 따라 선택 적용
ssl_protocols TLSv1.2;
location / {
}
...
}
- 설정 적용
systemctl reload nginx # 또는 systemctl restart nginx
systemctl status nginx
'Develop > Network' 카테고리의 다른 글
String contains non ISO-8859-1 code point. (0) | 2022.09.15 |
---|---|
[ssh] permissions 0644 for are too open (0) | 2022.03.04 |
API Gateway 란? 🤔 (0) | 2022.02.25 |
[network] 네트워크 클래스, 서브넷, 서브넷 마스크, 서브넷팅 (0) | 2021.12.25 |
[network] CSRF ? 🤔 (0) | 2021.09.28 |
댓글