我正在尝试在 http 和 https 上运行我的应用程序。该应用程序呈现静态 html 及其 css' 和 js'。我使用 nginx 来提供页面服务。我已经配置了 nginx 配置,但页面未在 https 上呈现。
当我点击 http://subdomain.example.com 时,效果很好!
但是,当我点击 https://subdomain.example.com 时,我在 Chrome 中收到 CONNECTION_RESET 或 CONNECTION_CLOSED 错误。
以下是我的配置:
server {
listen 80;
server_name subdomain.example.com;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /var/www/html/htmls/;
index entergmat.html;
}
}
server{
listen 443 ssl;
ssl on;
server_name subdomain.example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/certificate.key;
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# ssl_ciphers HIGH:!aNULL:!MD5;
keepalive_timeout 70;
location / {
root /var/www/html/htmls/;
index entergmat.html;
}
}
请求您的帮助。
谢谢!
我建议从您的配置中删除
ssl on;
:
建议使用listen指令的ssl参数 而不是这个指令。
来自 nginx 文档 http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl
我建议您合并 HTTP 和 HTTPS 配置。另请确保您的 SSL 证书适用于 Web 工具,例如:https://www.ssllabs.com/ssltest/index.html。另外,请确保您的子域已在 DNS 中正确注册。
我让它可以与子域和配置一起使用,例如:
server {
listen 80;
listen [::]:80;
listen 443 ssl;
server_name subdomain.my-website.com www.subdomain.my-website.com;
root /website/my-website/src;
index index.html index.htm;
ssl_certificate /website/my-website/certificates/my-website.com_certificate.cer;
ssl_certificate_key /website/my-website/certificates/my-website.com_secret_key.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:HIGH:!aNULL:!MD5;
if ($host = www.subdomain.my-website.com) {
return 301 https://subdomain.my-website.com$request_uri;
}
}
如果您想要使用 Nginx 设置网站的分步指南(包括设置 HTTPS 部分),我已经在以下位置编写了完整的教程:https://medium.com/p/46f34afc15df