2010-10-05 15 views
10

All'interno di un sito "brochure" standard ho un sottosistema in cui i dati privati ​​vengono passati avanti e indietro in una serie di pagine. Il sito è fatto e funziona ora senza HTTPS.Cosa devo codice per utilizzare HTTPS?

Qualcuno può indicarmi un elenco di passaggi che devo fare per implementare HTTPS nella parte protetta del sito?

+0

possibile duplicato del [Forza SSL/HTTPS usando .htaccess e mod \ _rewrite] (http://stackoverflow.com/questions/4398951/force-ssl-https-using- htaccess-and-mod-rewrite) – Trilarion

risposta

7

Il sito Web deve essere configurato da solo, questo non è correlato al php stesso a questo punto.

Sul tuo PC locale, penso che tu usi Apache come server web. Quindi per Apache è necessario installare un certificato, Apache deve ascoltare la porta https (443 per impostazione predefinita).

È possibile visualizzare questo link, può aiutare: http://www.onlamp.com/pub/a/onlamp/2008/03/04/step-by-step-configuring-ssl-under-apache.html

Inoltre, in tutte le sezioni del sito web è necessario utilizzare il protocollo https nell'URL, non http. E.g. https://example.com

+1

grazie per il link! – sdfor

+0

@sdfor sei il benvenuto :) – Andron

+0

Il link è rotto ora – bubble

5

Non è prevista alcuna modifica del codice PHP. HTTPS indica i dati che verranno crittografati tra il browser e il server web. Il browser è già configurato per HTTPS, tutto ciò che devi fare è configurare il tuo server web. Molto probabilmente puoi fare tutto il resto dal tuo pannello di controllo di hosting stesso.

Se si vuole forzare HTTPS, è possibile utilizzare una sola riga di codice mod_rewrite

+0

E per questo codice di una linea vedi per esempio: http: //stackoverflow.com/questions/4398951/force-ssl-https-using-htaccess-and-mod-rewrite – Trilarion

15

L'unica cosa che come programmatore che dovete fare è controllare che l'utente, infatti, utilizza HTTPS:

if($_SERVER['SERVER_PORT'] !== 443 && 
    (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === 'off')) { 
    header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); 
    exit; 
} 

Quindi (avere l'amministratore di sistema) ordinare e installare un certificato SSL sul server Web.

0

Prova questo:

<?php 
    if ($_SERVER['HTTPS'] != 'on') { 
    echo '<script type="text/javascript">window.location = "https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '";</script>'; 
    } 
?> 
Problemi correlati