自签名https gitlab

时间:2019-12-16 06:56:05

标签: ssl nginx openssl gitlab

我想在与gitlab的连接上使用https。

我执行了

openssl req -x509 -sha256 -days 365 -nodes -newkey rsa:2048 -keyout /etc/gitlab/ssl/172.29.128.166.key -out /etc/gitlab/ssl/172.29.128.166.crt

我的gitlab.rb如下

external_url "https://172.29.128.166:8929/"
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/ssl/172.29.128.166.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/172.29.128.166.key"

2个问题:

1)当我去http://172.29.128.166:8929/时,我得到了

400 Bad Request
The plain HTTP request was sent to HTTPS port
nginx

我已指定nginx['redirect_http_to_https'] = true,所以它不应该转到https吗?

2)当我转到https://172.29.128.166:8929/时,可以查看GitLab。但是,我的Chrome表示它“不安全”。 我也可以看到证书无效。

我该如何解决这个问题?我是新来的,谢谢你

1 个答案:

答案 0 :(得分:0)

#1

您是否尝试了不使用“ nginx ['redirect_http_to_https_port'] = 80”的方法。您已经在“ nginx ['redirect_http_to_https'] = true”中进行了介绍。

当在external_url中指定“ https ...”时,nginx停止在端口80上监听。“ nginx ['redirect_http_to_https'] = true”告诉它在端口80上再次开始监听。您对redirect_http_to_https_port的使用是多余的/不必要的。

#2

但是,我的浏览器说它是“不安全的”。

是的。浏览器正在按设计运行。自签名证书天生就不受信任,因为任何人都可以生成自签名证书。因此,您每次都会收到警告。