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
Antwort
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.
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
Also dann theoretisch konnte ich das Zertifikat auf meinem benutzerdefinierten Domain-Anbieter setzen? – thesecretmaster
@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
- 1. So richten Sie ein SMS-Gateway ein
- 2. So richten Sie benutzerfreundliche URLs ein
- 3. So richten Sie eine JavaScript-Entwicklungsinfrastruktur ein
- 4. So richten Sie Eclipse TPTP ein
- 5. So richten Sie Bindungen für NSPopUpButton ein
- 6. So richten Sie Retrofit ohne baseUrl ein
- 7. So richten Sie MQSeries in Perl ein
- 8. So richten Sie Java EE-Sicherheitsrollen ein
- 9. So richten Sie Schema-aware XQuery ein
- 10. So richten Sie ein Array für Mehrfachanmerkungen mit swift ein
- 11. So richten Sie virtuelle Hosts auf Apache 2.2 ein
- 12. So richten Sie Unity-Testtools auf Unity 5 ein
- 13. So richten Sie ein Computernetzwerk mit Ruby ein
- 14. So richten Sie squid_session mit transparentem Proxy ein
- 15. So richten Sie den vertikalen Bildlauf nur programmgesteuert ein
- 16. So richten Sie die Domain-Whitelist in PhoneGap Build ein?
- 17. So richten Sie TH Header mit TD in TBody ein
- 18. So richten Sie Fehlerberichte in Stackdriver von kubernetes-Pods ein?
- 19. So richten Sie Apache-Weiterleitungen für Bilder korrekt ein
- 20. So richten Sie den Google Chrome-Arbeitsbereich korrekt ein
- 21. So richten Sie einen titan1.0 + hbase0.98-Cluster ein
- 22. So richten Sie Core-Daten für watchOS 2 ein
- 23. So richten Sie eine neue Sitzung mit einer Standardseite ein
- 24. So richten Sie JavaScript Soundcloud SDK für Web App ein
- 25. So richten Sie Pylint ein, um nur einige Inspektionen durchzuführen
- 26. Richten Sie JQGrid so ein, dass alle Zeilen editierbar sind?
- 27. So richten Sie den Medienpfad für MediaSession.QueueItem ein
- 28. So richten Sie mehrere Authentifizierungstypen für 1 Subversion Repo ein?
- 29. So richten Sie Duplikate in denselben Zeilen in Excel ein
- 30. So richten Sie Autoscaling ein RabbitMQ-Cluster AWS
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