我想在与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表示它“不安全”。 我也可以看到证书无效。
我该如何解决这个问题?我是新来的,谢谢你
答案 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
但是,我的浏览器说它是“不安全的”。
是的。浏览器正在按设计运行。自签名证书天生就不受信任,因为任何人都可以生成自签名证书。因此,您每次都会收到警告。