Rails mit HTTPS

HTTPS (Hypertext Transfer Protocol Secure) macht Sinn. HTTPS vermittelt Integrität. HTTPS schafft Vertrauen. Wenn vom Nutzer erwartet wird, dass er Daten eingibt, ist es absolut notwendig, dass diese auch verschlüsselt werden.
Ruby on Rails unterstützt die Verschlüsselung der Kommunikation. Dafür wird lediglich ein SSL Zertifikat benötigt, das von einer Zertifizierungsstelle legitimiert ist. Je nach Anwendungsfall gibt es Zertifikate für Single Domain, Wildcard oder Multiple Domains. Welche Zertifizierungstelle dann die Richtige ist, hängt auch von den benötigten Optionen und dem Geldbeutel ab.
Außer dem Zertifikat wird auch ein privater Schlüssel (RSA) benötigt:

$ openssl genrsa -des3 -out server.pass.key 2048
...
Enter pass phrase for server.pass.key:
Verifying - Enter pass phrase for server.pass.key:

Den Schlüssel in server.key ablegen:

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

Danach muss noch der digitale Antrag (CSR) für das Zertifikat erstellt werden:

openssl req -nodes -new -key server.key -out server.csr
...
Country Name (2 letter code) [AU]:US
Common Name (eg, YOUR name) []:www.example.com
...

Das server.csr muss an den Zertifikat-Provider gesendet werden und der wiederum wird dann das Zertifikat (.pem oder .crt Datei) liefern.
Beide müssen dann noch auf dem Server abgelegt werden.
In der Rails Anwendung kann die Datenverschlüsselung im produktiven Modus (config/production.rb) angestellt werden:

config.force_ssl = true

Nun sind zwar alle Seiten der Applikation SSL verschlüsselt, aber externe Assets sollten ebenfalls SSL gesichert werden. Ansonsten gibt der Browser Warnungen aus. Der Artikel Protokollunabhängige Assets geht auf dieses Thema genauer ein.