nginx - https est configuré et hsts est activé Comment puis-je forcer https pour la première visite ?
我想大声告诉你
我想大声告诉你 2017-05-16 17:20:26
0
5
828

https est configuré, mais chaque première visite utilise http. C'est-à-dire que si un utilisateur n'a jamais visité notre site Web via HTTPS, il n'y aura évidemment aucune chance d'obtenir l'en-tête de réponse HSTS, il est donc toujours possible d'y accéder pour la première fois via HTTP.

我想大声告诉你
我想大声告诉你

répondre à tous(5)
習慣沉默

Google est toujours en avance en termes de sécurité du navigateur, c'est pourquoi il maintient une liste de préchargement (veuillez d'abord surfer sur Internet de manière scientifique) que Chrome peut utiliser, et cette liste sera codée en dur dans le navigateur Chrome. Plus tard, Firefox, Safari, IE 11 et Edge ont rejoint. Par conséquent, tous les principaux navigateurs prennent en charge la même liste. De cette manière, les sites ajoutés à cette liste peuvent garantir qu’ils utilisent https en toutes circonstances, y compris pour la première fois.

Comme le montre l'image, interrogez twitter.com pour rejoindre cette liste, ainsi lorsque vous entrez twitter.com dans la barre d'adresse, même si vous ne l'avez jamais visité auparavant, le navigateur forcera https pour la première fois , au lieu de forcer le serveur à changer.

Pour des informations détaillées, veuillez vous référer à cet article (cité sur linux.cn)

为情所困

Cela ne fonctionne pas, vous ne pouvez pas exiger que les utilisateurs utilisent https pour accéder la première fois,

Configurez le fichier de configuration conf et passez les 80 ports à 443,

La deuxième méthode, HSTS

server {
    listen       80;
    server_name 你的域名;
    rewrite ^/(.*) https://你的域名/ permanent;
}
server
    {
        listen 80;
        listen 443 ssl;
        ssl on;
        ssl_certificate /root/t3.crt;
        ssl_certificate_key /root/t3.key;
        server_name t3.zy62.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/rootpath/;

        include other.conf;
        #error_page   404   /404.html;
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ [^/]\.php(/|$)
        {
            # comment try_files $uri =404; to enable pathinfo
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            #include pathinfo.conf;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        access_log  /home/日志文件  access;
    }
为情所困

nginx configure SSL et force https
https://echo.pm/lnmp-nginx-ss...

小葫芦

Le serveur peut ouvrir https et http en même temps

Celui demandé par l'utilisateur est celui demandé, et le serveur ne peut pas décider.

Vous pouvez forcer la redirection http vers https côté serveur.

Vous pouvez également désactiver http, de sorte que lorsque l'utilisateur demande http, il vous indiquera que l'adresse demandée n'existe pas. . N'existe pas. . .

迷茫

Configurez simplement http pour forcer le passage à https. Après tout, de nombreux utilisateurs sont habitués à utiliser http. Voici l'implémentation de l'ajustement forcé http de la configuration https dans différentes versions du serveur :

Version APache

Si vous devez rediriger l'intégralité du site, saisissez le contenu suivant dans la balise <Répertoire>

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/ [L,R]
Si vous souhaitez forcer la redirection https vers un certain répertoire, copiez le code suivant :

RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/ [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Si vous avez uniquement besoin de rediriger une certaine page Web vers https, vous pouvez utiliser la redirection 301 pour effectuer la redirection ! rediriger 301/votre page Web https://votre hôte+page Web

Version IIS

Introduction à la méthode de conversion automatique de Http en Https dans IIS

1. Sauvegardez les fichiers suivants selon la version IIS :

IIS6.0 路径:C:\WINDOWS\Help\iisHelp\common3-4.htm                          
IIS7.0以上 路径:C:\inetpub\custerr\zh-CN3.htm
2. Copiez et remplacez tout le contenu suivant (403-4 ou 403) et enregistrez-le

<HTML><HEAD><TITLE>该页必须通过安全通道查看</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=GB2312">
</HEAD><BODY>
<script type="text/javascript">
var url = window.location.href;
                if (url.indexOf("https") < 0) {
                    url = url.replace("http:", "https:");
                    window.location.replace(url);
                }
</script>
</BODY></HTML>
Remarque : Dans IIS6, accédez à Propriétés du site->Sécurité du répertoire->cochez « Exiger un canal sécurisé (SSL) » dans l'éditeur. Dans IIS7 et 8, accédez à Paramètres SSL->cochez « Exiger SSL ».

Version Tomcat

Deux changements doivent être apportés.

1. Le port configuré avec le certificat SSL dans server.xml doit être remplacé par le port "443" par défaut, veuillez passer directement à la deuxième étape ;

2. fichier de configuration xml : comme suit

<web-app>
.........
<security-constraint>
    <web-resource-collection >
              <web-resource-name >SSL</web-resource-name>
              <url-pattern>/*</url-pattern>
       </web-resource-collection>                             
       <user-data-constraint>
       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
</security-constraint>
  </web-app>
3. Revenez au fichier de configuration server.xml et recherchez le nœud avec le port 80. L'attribut par défaut est redirectPort="8443". Vous devez le changer en "443", enregistrer et redémarrer.

Version Nginx

Dans le fichier qui configure le port 80, écrivez simplement le contenu suivant.

server {
        listen       80;
        server_name  localhost;
       rewrite ^(.*)$ https://$host permanent;    

        location / {
            root   html;
            index  index.html index.htm;
        }
Extrait de code commun pour les pages séparées : cette méthode est plus adaptée aux recherches SEO ou à la spécification d'une sous-page distincte https

Ajoutez ce code à la page qui doit être forcée en https pour le traitement

<script type="text/javascript">
var url = window.location.href;
                if (url.indexOf("https") < 0) {
                    url = url.replace("http:", "https:");
                    window.location.replace(url);
                }
</script>
Adresse de référence : https://bbs.wosign.com/thread-46-1-1.html

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!