2011-12-30 12 views
7

estoy carriles de 3,1 en el modo de desarrollo corriendo en Ubuntu con SQLite. El servidor carriles se está ejecutando en el puerto 3000, y he puesto nginx hasta PROXY_PASS los puertos 80 y 443 al puerto 3000. cuando pongo en mi config.force_ssl = true application.rb y reiniciar el servidor de rieles, me sale un error que se parece a:SSL con Rails 3.1: config.force_ssl = true no funciona en el modo de desarrollo

Secure Connection Failed 
    An error occurred during a connection to localhost:3000. 

    SSL received a record that exceeded the maximum permissible length. 

    (Error code: ssl_error_rx_record_too_long) 

    The page you are trying to view can not be shown because the authenticity of the received data could not be verified. 
    Please contact the web site owners to inform them of this problem. Alternatively, use the command found in the help menu to report this broken site. 

Cuando lo cambio de nuevo a config.force_ssl = false y reinicio el servidor de rieles, sigo recibiendo un error, [2011-12-30 09:48:02] ERROR bad URI 9W\x0Fe���h=9��ݔ|�#��)�/6\x00\x00H\x00��'. en la consola de rieles. Esto desaparece y todo vuelve a la normalidad si también borro el caché del navegador. ¿Pero cómo consigo que force_ssl = true funcione?

Aquí es parte de mi application.rb:

module Regi 
     class Application < Rails::Application 
     # Settings in config/environments/* take precedence over those specified here. 
     # Application configuration should go into files in config/initializers 
     # -- all .rb files in that directory are automatically loaded. 
     config.generators do |g| 
      g.template_engine :haml 
     end 
     config.force_ssl = true 
     end 
    end   

Y aquí es mi/etc/nginx/sites-enabled/por defecto:

server { 
    #listen 80; ## listen for ipv4; this line is default and implied 
    #listen [::]:80 default ipv6only=on; ## listen for ipv6 

    root /usr/share/nginx/www; 
    index index.html index.htm; 

    # Make site accessible from http://localhost/ 
    server_name localhost; 

    location/{ 
      # First attempt to serve request as file, then 
      # as directory, then fall back to index.html 
      proxy_pass  http://localhost:3000; 
      try_files $uri $uri/ /index.html; 
    } 


    #error_page 404 /404.html; 

    # redirect server error pages to the static page /50x.html 
    # 
    #error_page 500 502 503 504 /50x.html; 
    #location = /50x.html { 
    #  root /usr/share/nginx/www; 
    #} 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
    # 
    #location ~ \.php$ { 
    #  fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    #  # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 
    # 
    #  fastcgi_pass 127.0.0.1:9000; 
    #  fastcgi_index index.php; 
    #  include fastcgi_params; 
    #} 

    # deny access to .htaccess files, if Apache's document root 
    # concurs with nginx's one 
    # 
    #location ~ /\.ht { 
    #  deny all; 
    #} 
} 

# HTTPS server 
server { 
    listen  443; 
    server_name localhost; 

    #charset koi8-r; 

    #access_log logs/host.access.log main; 
    ssl on; 
    ssl_certificate /usr/local/conf/ssl_keys/server.crt; 
    ssl_certificate_key /usr/local/conf/ssl_keys/server.key; 

    location/{ 
     proxy_pass  http://localhost:3000; 
     proxy_set_header X-Real-IP $remote_addr; 
     # root html; 
     # index index.html index.htm; 
    } 

    #error_page 404    /404.html; 

    # redirect server error pages to the static page /50x.html 
    # 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root html; 
    } 
} 

Respuesta

2

que he encontrado el mismo error exacto mensaje cuando configuro un SSL nginx de server.That porque yo no tengo CRT SSL y key.And en su archivo de configuración de nginx, he notificación no ha habido CRT y key.So ¿está seguro tanto en el CRT y la clave están bien ? Si no está seguro, puede intentar con el siguiente enlace para crear crt autoasignado. http://devcenter.heroku.com/articles/ssl-certificate-self

P. S. Quiero añadir esta respuesta como un pequeño comentario, pero parece que no tenía este permiso

Cuestiones relacionadas