我的网站http://bavarian-joke-generator.org正在运行.可悲的是,我无法得到HTTPS版本的工作,因为我一直遇到以下问题,因为启用它通过证书由letsencrypt.org通过Certbot:
我服务器的响应好像被拦截了
Firefox:
Safari浏览器:
* 我的问题是:*
我在这里错过了什么?我将列出以下事情已经和真的似乎是出了什么问题可以引起的资源。
详细信息:
从下面的NGINX日志中可以看出,我的Nginx容器成功发送了响应。
*HTTPS 最终被阻塞的响应:
*HTTP响应按预期工作:
服务器由Hetzner提供,以下UFW防火墙设置处于活动状态(阻止的IP地址不是我的):x1c4d 1x
整个代码可以在其GitHub repository上看到
但我特别想提到使用的NGINX配置。还要注意,NGINX作为ad docker-compose文件的一部分作为容器运行:
*配置:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
proxy_max_temp_file_size 0;
include /etc/nginx/conf.d/*.conf;
}
字符串
*以上模板
server {
server_name bavarian-joke-generator.org www.bavarian-joke-generator.org;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/nginx/ssl/live/bavarian-joke-generator.org/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/bavarian-joke-generator.org/privkey.pem;
listen 80;
listen [::]:80;
add_header Strict-Transport-Security 'max-age=63072000; includeSubDomains; preload' always;
add_header Content_Security-Policy "default-src 'self'; script-src 'sha384-7FvcOpf85HsGS89sLrvOOHZYqgaEqbfUi87HhpbqbndTSFw+XpzbDMK5ZcxD28fe'; frame-ancestors: 'self'; form-action 'self'; base-uri 'self';";
add_header X-Content-Type-Options: "nosniff";
root /usr/share/nginx/html;
error_page 400 /errors/400_wrong_input.html;
error_page 404 /errors/404_joke_not_found.html;
location / {
}
# SSL Certificate:
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location /errors/ {
root /usr/share/nginx/html;
internal;
}
location ^~ /assets/ {
root /usr/share/nginx;
}
location ^~ /RegEx/ {
root /usr/share/nginx;
}
location ^~ /ssr/ {
# pass will exchange ssr/ for /:
proxy_pass "http://${SSR_HOST}:${SSR_PORT}/";
proxy_http_version 1.1;
proxy_set_header "Connection" "";
proxy_intercept_errors on;
}
location ^~ /auth/ {
# pass will exchange auth/ for /:
proxy_pass "http://${AUTH_HOST}:${AUTH_PORT}/";
proxy_http_version 1.1;
proxy_set_header "Connection" "";
# No error pages -> Do not intercept errors
}
location ~ \.(?:js|.css)$ {
root /usr/share/nginx/html;
}
}
型
我已经试过了:
- 将NGINX服务器块分成两个,分别监听端口80和443,并重定向到HTTPS块
- 再次启用ufw规则
- 更新我的SSL证书
- 检查是否可以通过sslhoper.com找到我的ssl证书
- 检查是否存在任何其他防火墙并正在阻止
1条答案
按热度按时间olmpazwi1#
所以我不能解决这个问题**,但**我能够绕过它:
我现在有一个父NGINX进程运行在我的主Hetzner提供的服务器上,NGINX子进程运行在一个容器中,正如我上面的compose文件所述。
如果这是一个Hetzner的问题或与我的任何一个问题,必须进一步调查。
更多信息可以在这里找到: