![GitLab で SSL を有効にすると ERR_CONNECTION_REFUSED が発生する](https://rvso.com/image/697037/GitLab%20%E3%81%A7%20SSL%20%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%A8%20ERR_CONNECTION_REFUSED%20%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%99%E3%82%8B.png)
数か月間 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 ですべてが正常に戻ります。
構成ファイルに 2 つの証明書を入力し、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;
...
}