• 设置HTTP请求自动跳转HTTPS


    第一种方式,分两种情况:

    第一种情况:修改Nginx安装目录/conf/nginx.conf文件

    server {
        listen 80;
        server_name localhost;   #将localhost修改为您证书绑定的域名,例如:www.example.com。
        rewrite ^(.*)$ https://$host$1 permanent;   #将所有http请求通过rewrite重定向到https。
        location / {
            index index.html index.htm;
        }
    }
    
    
    # 以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
    server {
        listen 443 ssl;   #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
        server_name localhost;  #将localhost修改为您证书绑定的域名,例如:www.example.com。
        root html;
        index index.html index.htm;
        ssl_certificate cert/domain name.pem;   #将domain name.pem替换成您证书的文件名。
        ssl_certificate_key cert/domain name.key;   #将domain name.key替换成您证书的密钥文件名。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
        ssl_prefer_server_ciphers on;   
        location / {
            root html;   #站点目录。
            index index.html index.htm;   
        }
    }                     
    

    第二种情况:虚拟主机配置SSL证书,虚拟主机配置文件vhost.conf或*.conf

    server {
        listen 80;
        server_name localhost ;
        location / {
            index index.html index.htm;
        }
    }
    server {
        listen 443 ssl;
        server_name localhost;
        root html;
        index index.html index.htm;
        ssl_certificate cert/domain name.pem;   #将domain name.pem替换成您证书的文件名。
        ssl_certificate_key cert/domain name.key;   #将domain name.key替换成您证书的密钥文件名。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
            index index.html index.htm;
        }
    }    
    
    

    在Web目录下打开.htaccess文件(如没有,需新建该文件),添加以下rewrite语句,实现HTTP访问自动跳转到HTTPS页面。

    RewriteEngine On
    RewriteCond %{HTTP:From-Https} !^on$ [NC]
    RewriteCond %{HTTP_HOST} ^(www.)?yourdomain.com$ [NC]                # 将yourdomain.com修改为您证书绑定的域名,例如:example.com。
    RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]           # 将yourdomain.com修改为您证书绑定的域名,例如:example.com。
    

    第二种方式

    server {
        listen 80;
        server_name demo.jumpserver.org;  # 自行修改成你的域名
        return 301 https://$server_name$request_uri;
    }
    
    server {
        listen 443 ssl;
        server_name demo.jumpserver.org;  # 自行修改成你的域名
        ssl_certificate   /etc/nginx/sslkey/1_jumpserver.org_bundle.crt;  # 自行设置证书
        ssl_certificate_key  /etc/nginx/sslkey/2_jumpserver.org.key;  # 自行设置证书
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  # 自行替换成你证书支持的加密套件
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  # 支持的协议
        ssl_prefer_server_ciphers on;
    
        location / {
            index index.html index.htm;
        }
    }
    
    
  • 相关阅读:
    Docker笔记
    使用NextCloud搭建私有云盘
    docker轻量级管理工具
    docker仓库使用+harbor私有仓库部署
    防DDOS攻击解决方案
    MongoDB非关系型数据库
    监控磁盘使用率解决方案
    部署SonarQube代码质量检查7.7版本
    Jenkins的权限控制
    Jenkins分布式构建
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13540970.html
Copyright © 2020-2023  润新知