2016-04-12 6 views
1

Ich versuche SLL lokal mit Rails 4.2.5 auf El Capitan mit dünnen (ich kümmere mich nicht wirklich, wenn es dünn ist oder nicht), und ich ausprobiert, zuletzt: https://gist.github.com/trcarden/3295935 (auch unten eingefügt) - aber es funktioniert nicht.SSL lokal arbeiten mit Rails auf OSX für Entwicklung

# SSL self signed localhost for rails start to finish, no red warnings. 

# 1) Create your private key (any password will do, we remove it below) 

$ openssl genrsa -des3 -out server.orig.key 2048 


# 2) Remove the password 

$ openssl rsa -in server.orig.key -out server.key 


# 3) Generate the csr (Certificate signing request) (Details are important!) 

$ openssl req -new -key server.key -out server.csr 

# IMPORTANT 
# MUST have localhost.ssl as the common name to keep browsers happy 
# (has to do with non internal domain names ... which sadly can be 
# avoided with a domain name with a "." in the middle of it somewhere) 

Country Name (2 letter code) [AU]: 
... 
Common Name: localhost.ssl 
... 


# 4) Generate self signed ssl certificate 

$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 

# 5) Finally Add localhost.ssl to your hosts file 

$ echo "127.0.0.1 localhost.ssl" | sudo tee -a /private/etc/hosts 

# 6) Boot thin 

$ thin start --ssl --ssl-verify --ssl-key-file server.key --ssl-cert-file server.crt 

# 7) Add server.crt as trusted !!SYSTEM!! (not login) cert in the mac osx keychain 
# Open keychain tool, drag .crt file to system, and trust everything. 

# Notes: 
# 1) Https traffic and http traffic can't be served from the same thin process. If you want 
# both you need to start two instances on different ports. 
# 
# 

Ich gehe dann zu https://localhost.ssl:3001 und das Schloss im Browser hat immer noch den roten X.

Irgendwelche Vorschläge?

Danke!

+0

Haben Sie es am Ende zum Laufen gebracht? – Jaryl

Antwort

2

Ich habe das zur Arbeit bekommen.

Erste einer der Fehler, die ich direkt sehen ist, dass Sie an Port 3001 zu verbinden versuchen, aber der Server Sie starten auf Port 3000.

Zweitens die --ssl-verify nicht akzeptiert wurde, so dass es ich entfernt.

Vergessen Sie auch nicht, das erstellte Zertifikat zum Schlüsselbund hinzuzufügen und es in vertrauenswürdig zu ändern.

Und schließlich müssen Sie Rails sagen, die localhost.ssl ​​Domain-Namen für Vermögenswerte nutzen etc, so stellen Sie sicher, dass diese in config/environments/development.rb:

config.action_controller.asset_host = 'https://localhost.ssl:3000'

Beachten Sie die S auf dem https.

+0

Beachten Sie, dass dies auch mit Puma funktioniert.Im Puma-Fall ist Schritt 6 nicht erforderlich.Fügen Sie stattdessen 'ssl_bind '127.0.0.1', '3000', {key hinzu : path_to_key, cert: path_to_cert} 'zu Ihrer' config/puma.rb' Datei Starten Sie einfach Ihre s von der Befehlszeile mit 'rails s' und Sie können mit der Bearbeitung von https-Anfragen beginnen. – amayer171292591

0

Für das, was es wert ist, binding Schienen im Entwicklungsmodus zu "localhost" anstelle einer IP-Adresse (wie 0.0.0.0) wird als eine gültige SSL-Herkunft behandelt, unabhängig davon, ob Sie einen SSL-Schlüssel/Zertifikat generiert haben. Alle Verwarnungswarnungen sollten gelöscht werden, wenn sie als localhost ausgeführt werden.

Das hier angegeben wird (unter „Testing leistungsstarken Funktionen, # 2):

https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

Statt rails s der Verwendung von Puma/Thin zu starten, würden Sie rails s -b localhost -p 3000, verwenden und dann Zugriff auf Ihre Anwendung durch http://localhost:3000