2013-04-08 6 views
17

J'ai créé un site et l'ai mis sur Heroku. J'ai ensuite ajouté un domaine personnalisé (par exemple "site.exemple.com") dans le panneau de contrôle Heroku et j'ai pointé le DNS vers mon adresse Heroku. Cela fonctionne très bien, mais quand je visite le site, je reçois un grand avertissement de navigateur, disant que le certificat est pour herokuapp.com, pas pour "site.example.com". Comment désactiver HTTPS ou le réparer d'une autre manière? (Je n'ai pas besoin de mon propre certificat SSL pour le site.)Comment désactiver HTTPS sur Heroku

Note: Ce n'est pas la faute de Heroku si votre application force les utilisateurs à utiliser SSL. Vérifiez production.rb pour vous assurer qu'il ne dit pas:

config.force_ssl = true 

Dans le cas contraire, changez-le à false:

config.force_ssl = false 

Répondre

4

Malheureusement, vous ne pouvez pas empêcher quelqu'un de tenter d'accéder à votre site via SSL . C'est-à-dire que n'importe qui peut simplement ajouter https au début de ://site.example.com. Je recommanderais que vous open a support ticket pour permettre à l'équipe de support de regarder dans votre configuration actuelle. Malheureusement, le Piggyback SSL qui existe à *.herokuapp.com pour les applications Cedar saigne à moins que vous ayez votre propre certificat SSL qui est spécifié en utilisant le module complémentaire ssl:endpoint. En fait, même si le protocole Piggyback SSL n'était pas en place, vos visiteurs recevraient quand même une erreur lors de l'accès à la version SSL de votre site. Vous pourriez envisager d'acheter un cert SSL peu coûteux à partir d'un endroit comme Namecheap (on dirait que vous pouvez ramasser un cert super-simple pour 8 $/an) juste pour se débarrasser des erreurs. Vous pouvez ensuite appliquer la redirection vers la version non-SSL de votre site et tout va bien!

0

Cela peut ne pas être la meilleure pratique mais néanmoins si vous voulez désespérément forcer "NO-SSL", alors vous pouvez le faire via le code JavaScript comme suit.

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

Ce ne fonctionnera pas sur Chrome, comme heruko va simplement le forcer à revenir à https – Photonic

+0

@Photonic: Je l'ai essayé d'utiliser dans mon heroku [app] (http://webrtc-rts.herokuapp.com/) et ça a marché. Vérifié avec Chromium 45 sur une machine Linux. – Dwarak

+0

Cela ne fonctionne pas. J'utilise Firefox et Heroku semble se replier chaque fois sur https et il y a une boucle infinie provenant d'une telle implémentation de l'événement 'onload'. – Jagger