2016-04-21 14 views
2

Ich versuche, Herokus SSL-Richtlinie zu umgehen, die Sie zwingt, ein Add-on für 20 $/Monat zu bezahlen. Die beste Route zu verstehen ist, das Add-on zu bekommen, ich frage mich, was ich mit dem Add-on bekomme, das du nicht mit Sinatra machen kannst? Wäre es nicht so, dass ein Zertifikat vom Server angefordert wird, als würde eine Anfrage an den Server gesendet und daher von sinatra bearbeitet? Was ist so anders, dass dies unmöglich zu implementieren ist?So richten Sie ein SSL-Zertifikat auf sinatra ein

+0

Bitte überprüfen Sie den untenstehenden Link, es wäre hilfreich für Sie. http://stackoverflow.com/questions/3696558/how-to-make-sinatra-work-over-https-ssl – rajeev

Antwort

2

Also, Heroku über SSL ist tatsächlich kostenlos, wenn Sie Ihre Anwendung über die herokuapp.com-Domäne zugreifen. Sie müssen nur für das Add-on bezahlen, wenn Sie Ihre App über SSL von einer benutzerdefinierten Domain aus bereitstellen möchten. Da heroku-Apps von nginx (mit einem Standardzertifikat * .herokuapp.com) weitergeleitet werden, würde das Erstellen eines DNS-Datensatzes in einer benutzerdefinierten Domäne ohne Kauf des Plug-Ins zu einem falschen Zertifikat und zu einer Fettwarnung führen, wenn Personen versuchen, auf Ihre Website zuzugreifen. Mit dem Addon können Sie das benutzerdefinierte Zertifikat hinzufügen, sodass das Zertifikat dem CNAME-Datensatz entspricht.

Es gibt jedoch einen kostenlosen Workaround, wie @seph sagte, Cloudflare ist ziemlich gut für eine Situation wie diese wegen seiner universellen SSL-Angebot. Wenn Sie SSL ohne strenge SSL-Überprüfung auf "Full" setzen und HSTS erzwingen (überprüfen Sie die Registerkarte Crypto im Dashboard), können Sie einen sicheren Proxy für Ihre heroku-Instanz erstellen und alle Cert-Mismatches ignorieren, während Sie noch immer über Ende-zu-Ende verfügen Verschlüsselung.

+0

Auch denke ich, auf das besondere zu antworten "warum kann ich nicht einfach ein Zertifikat senden mit Sinatra "(das ist wirklich Puma/Unicorn/Webrick/einige andere Rack-Server) - es ist wegen der Nginx-Proxy, der gesamte Web-Verkehr zu Ihrer App wird über Heroku kontrollierten Servern geleitet, bevor Sie Ihre App, es ist die Zertifikate auf diese Server, die wirklich wichtig sind. – photoionized

+0

Also dann theoretisch konnte ich das Zertifikat auf meinem benutzerdefinierten Domain-Anbieter setzen? – thesecretmaster

+0

@thesecretmaster - nach Domain-Provider meinst du deinen DNS-Provider? DNS und ein Proxy sind zwei wesentlich verschiedene Dinge - Cloudflare passiert nur zufällig, um die beiden mit universellem SSL zu verbinden. Wenn Sie dies ohne etwas wie Cloudflare tun möchten, können Sie das Zertifikat auf Ihren eigenen Proxy-Server legen und es funktionieren lassen, aber an diesem Punkt müssen Sie einen Server haben, den Sie besitzen und verwalten ... so eine Art von Niederlagen der Zweck der Verwendung von Heroku ... – photoionized

Verwandte Themen