2013-04-08 11 views
17

Ich erstellte eine Website und legte sie auf Heroku. Ich fügte dann eine benutzerdefinierte Domäne (z. B. "site.example.com") in das Heroku-Steuerungsfeld ein, und ich richtete den DNS auf meine Heroku-Adresse. Dies funktioniert gut, aber wenn ich die Seite besuche, erhalte ich eine große Warnung, die besagt, dass das Zertifikat für herokuapp.com ist, nicht für "site.example.com". Wie kann ich HTTPS deaktivieren oder auf andere Weise reparieren? (Ich brauche kein eigenes SSL-Zertifikat für die Site.)Wie deaktiviere ich HTTPS auf Heroku

Hinweis: Es ist nicht Herokus Schuld, wenn Ihre App Leute auf SSL zwingt. Prüfen production.rb um sicherzustellen, dass es nicht sagen:

config.force_ssl = true 

Ist dies der Fall, ändern Sie ihn auf false:

config.force_ssl = false 

Antwort

4

Leider haben Sie nicht jemand aus dem Versuch verhindern können Ihre Website über SSL zugreifen . Das heißt, dass jeder einfach https zu Beginn ://site.example.com hinzufügen kann. Ich würde Ihnen empfehlen, dass Sie open a support ticket dem Support-Team erlauben, in Ihre aktuelle Konfiguration zu schauen. Leider Piggyback SSL, die unter *.herokuapp.com für Cedar-Apps existiert blutet durch, es sei denn, Sie haben Ihr eigenes SSL-Zertifikat, das mit dem ssl:endpoint Add-on angegeben wird.

Tatsache ist, dass Ihre Besucher auch dann, wenn das Piggyback-SSL nicht vorhanden ist, weiterhin einen Fehler erhalten, wenn Sie zur SSL-Version Ihrer Website wechseln. Sie könnten erwägen, ein ernsthaft billiges SSL-Zertifikat von einem Ort wie Namecheap (sieht aus wie Sie können ein super-einfaches Zertifikat für $ 8/Jahr abholen) kaufen, nur um die Fehler loszuwerden. Sie können dann die Umleitung auf die Nicht-SSL-Version Ihrer Website erzwingen und alles ist gut!

0

Dies ist möglicherweise nicht die beste Praxis, aber dennoch, wenn Sie verzweifelt "NO-SSL" erzwingen wollen, dann können Sie es über JavaScript-Code wie folgt tun.

window.onload=function(){ 
    $(function(){ 
     if(window.location.protocol==="https:") 
      window.location.protocol="http"; 
    }); 
} 
+2

Das wird nicht funktionieren auf Chrome, wie heruko wird es nur auf https – Photonic

+0

@Photonic zurückzudrängen: Ich habe versucht, mit ihm in meiner Heroku [app] (http://webrtc-rts.herokuapp.com/) und es hat funktioniert. Überprüft mit Chromium 45 auf einem Linux-Rechner. – Dwarak

+0

Dies funktioniert nicht. Ich benutze Firefox und Heroku scheint jedes Mal auf https zurückzugreifen und es gibt eine Endlosschleife, die von einer solchen Implementierung des Onload-Ereignisses kommt. – Jagger

Verwandte Themen