2011-09-14 17 views

risposta

4

Esiste un errore irreversibile di come una persona dovrebbe applicare un'app a una patch?

Non proprio. Perché? Perché tutto dipende dalla versione dei binari che stai utilizzando.

Per Rails 2.x, ho letto/sentito parlare di tecniche, tra cui:

  1. ModRewrite - utilizzare la capacità del server web per individuare e riscrivere HTTP ad HTTPS. Questa tecnica è più generale e potrebbe essere applicata a tutta una serie di tecnologie, non solo a rails (python, java o anche .net).
  2. Utilizza ssl_requirement gem: questo consente di aggiungere in modo dichiarativo istruzioni nei controller per reindirizzare a https se il protocollo è http (https://github.com/retr0h/ssl_requirement). Sebbene semplice, l'app ruby ​​dovrà gestire la richiesta e non sono sicuro di quanto sia veloce ssl_requirement.
  3. Usa il middleware del rack (rack-ssl, gemma rack-ssl-enforcer) - questo applica la gestione delle richieste delle rotaie, in modo che il reindirizzamento venga gestito molto prima che colpisca qualsiasi controller. Anche questo è configurabile (è possibile abbinare in base al percorso, ecc.) Ed è probabilmente migliore dell'opzione 2.

Per Rails 3.1, è supportato nel framework. Hai solo bisogno di fare questo:

# config/application.rb 
module MyApp 
    class Application < Rails::Application 
    config.force_ssl = true 
    end 
end 

Dovrete usare Apache e passeggeri?

Non necessariamente. Ci sono altre opzioni come NGinx e Passenger. Ma in generale, sì, probabilmente avrai bisogno di un server web adeguato seduto di fronte, gestendo la porzione SSL della richiesta.

In genere, è necessario un server Web per sedersi di fronte all'app. Deve essere configurato per gestire il traffico SSL e indirizzare le richieste alla tua app (http e https). Qui puoi usare Apache o NGinx.

Passenger si trova come un "plug-in" in Apache/NGinx per gestire le richieste attraverso l'applicazione. A questo punto, SSL non è di solito un problema (ad esempio la richiesta non è criptata). Ciò che la tua app deve fare è gestire la richiesta. Qui è dove si rileva se il protocollo è http o https e si richiede al browser di reindirizzare se necessario.

Esistono certificati attendibili gratuiti?

No. I certificati di fiducia sono solitamente firmati da un'autorità di certificazione. Questi tipicamente devono verificare che il tuo dominio e la società o l'individuo che detiene il dominio siano genuini e reali. Per fare ciò, si paga denaro. Ci sono molti fornitori là fuori che possono rilasciare un certificato SSL per circa $ 100 USD. Alcuni di più, altri meno.

I certificati sono in genere bloccati su un dominio. E paghi di più per le corrispondenze con i domini jolly (ad esempio * .myapp.com). Se stai cercando un certificato per lo sviluppo, puoi generare un certificato autofirmato.

Ho scritto un article showing you how to get HTTPS going on your local dev instance. Molti passaggi sono comuni anche per la produzione. L'articolo mostra come configurarlo per POW e NGinx, ma impostare Apache e Passenger non è troppo dissimile. La configurazione di Apache è diversa. Ma l'installazione e l'installazione di Passenger dovrebbero essere identiche a quelle di un ambiente http. Basta fare in modo che l'host virtuale sicuro nella configurazione di Apache punti all'applicazione.

Problemi correlati