저는 몇 달 동안 기존 GitLab을 설치해 왔으며 이제 실제 SSL 인증서(자체 서명 아님)를 추가해야 한다고 결정했습니다.
문서에 따라 다음 줄을 변경합니다.
external_url 'http://<domain>.com'
에게:
external_url 'https://<domain>.com'
그리고 다음 줄의 주석 처리를 제거했습니다.
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] "/etc/gitlab/ssl/gitlab.key"
그리고 확실히 하기 위해 주요 파일을 다시 확인했습니다.
root@host:/etc/gitlab# cat /etc/gitlab/ssl/gitlab.crt
-----BEGIN CERTIFICATE-----
...
root@host:/etc/gitlab# cat /etc/gitlab/ssl/gitlab.key
-----BEGIN PRIVATE KEY-----
...
그런 다음 을 실행했고 gitlab-ctl reconfigure
마지막에 성공 메시지를 받았습니다. 그러나 GitLab URL로 이동하면 ERR_CONNECTION_REFUSED
. 위의 모든 줄을 주석 처리하고 실행하면 gitlab-ctl reconfigure
모든 것이 HTTP 포트 80에서 정상으로 돌아갑니다.
구성 파일에 두 개의 인증서를 제공하고 URL을 조정할 때 nginx가 연결을 거부하는 원인은 무엇입니까? 감사해요!
답변1
GitLab이 443을 수신하지 않는 것 같습니다. 80의 리디렉션은 연결 거부를 받는 443으로 보냅니다. 구성에는 한 listen 443
줄이 있어야 합니다(참조:http://nginx.org/en/docs/http/configuring_https_servers.html)을 사용하면 SSL 요청을 수신할 수 있습니다.
페이지의 예:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
...
}