使用 rails 应用程序安装 ssl 证书的 nginx 配置
nginx configuration for ssl certificate installation with rails application
我在 nginx 服务器上的 rails 上使用 ruby 与 passenger 建立了一个站点。我的客户决定安装 ssl certificate.I 我是这类问题的新手,我以前从未做过,我需要确认我的 sites-enabled/default 文件配置正确。
我当前的配置是:
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name www.mysite.com;
passenger_enabled on;
rails_env production;
root /home/directory;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
为了添加 ssl 证书,我将添加另一个服务器块,如下所示:
server {
listen 443;
server_name www.mysite.com;
passenger_enabled on;
rails_env production;
root /home/directory;
ssl on;
ssl_certificate /etc/ssl/my_certificate;
ssl_certificate_key /etc/ssl/my_private_key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_stapling on
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
这是配置 nginx 的正确方法和参数还是我需要将它们组合在一个服务器块中?
我是否应该在之前的配置中添加任何遗漏的东西?
在:server_name www.mysite.com;
我可以用我的 IP 地址代替域名吗?
提前感谢您抽出时间
您可以在同一服务器部分拥有 HTTP 和 HTTPS 服务器
server {
listen 80;
listen [::]:80 ipv6only=on;
listen 443 ssl;
...
}
对于完整的 SSL 相关配置,我建议使用 Mozilla generator
- 是的,但你不应该。即使您没有正确设置 server_name Nginx 也会匹配您的第一个服务器部分,但是这样的配置很难支持和排除故障
我在 nginx 服务器上的 rails 上使用 ruby 与 passenger 建立了一个站点。我的客户决定安装 ssl certificate.I 我是这类问题的新手,我以前从未做过,我需要确认我的 sites-enabled/default 文件配置正确。 我当前的配置是:
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name www.mysite.com;
passenger_enabled on;
rails_env production;
root /home/directory;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
为了添加 ssl 证书,我将添加另一个服务器块,如下所示:
server {
listen 443;
server_name www.mysite.com;
passenger_enabled on;
rails_env production;
root /home/directory;
ssl on;
ssl_certificate /etc/ssl/my_certificate;
ssl_certificate_key /etc/ssl/my_private_key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_stapling on
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
这是配置 nginx 的正确方法和参数还是我需要将它们组合在一个服务器块中?
我是否应该在之前的配置中添加任何遗漏的东西?
在:
server_name www.mysite.com;
我可以用我的 IP 地址代替域名吗?
提前感谢您抽出时间
您可以在同一服务器部分拥有 HTTP 和 HTTPS 服务器
server { listen 80; listen [::]:80 ipv6only=on; listen 443 ssl; ... }
对于完整的 SSL 相关配置,我建议使用 Mozilla generator
- 是的,但你不应该。即使您没有正确设置 server_name Nginx 也会匹配您的第一个服务器部分,但是这样的配置很难支持和排除故障