nginx网站开启https访问,http自动跳转到https

最近nginx要开启https访问,希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,下面是颁发证书和配置过程。

安装了openssl和openssl-devel

#yum install openssl
#yum install openssl-devel

然后就是自己颁发证书给自己

#cd /usr/local/nginx/conf (自己的配置文件目录)
#openssl genrsa -des3 -out server.key 1024
#openssl req -new -key server.key -out server.csr
#openssl rsa -in server.key.org -out server.key
#openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

至此证书已经生成完毕,下面就是配置nginx

server {
    listen 443;
    ssl on;
    ssl_certificate  /usr/local/nginxtest/conf/sites/server.crt;
    ssl_certificate_key  /usr/local/nginxtest/conf/sites/server.key;

}


测试配置文件nginx -t

然后重启nginx即可。


问题:

ps: 如果出现“[emerg] 10464#0: unknown directive "ssl" in /usr/local/nginx-0.6.32/conf/nginx.conf:74”则说明没有将ssl模块编译进nginx,在configure的时候加上“--with-http_ssl_module”即可^^


让浏览器信任自己颁发的证书,具体方法:


控制面板 -> Internet选项 -> 内容 -> 发行者 -> 受信任的根证书颁发机构 -> 导入 -》选择server.crt






完整nginx配置文件

server {
    listen       82;
    server_name  *.域名;
    rewrite ^(.*) https://$host$1 permanent;

}

#访问http82端口的时候自动跳转到https

server {
    # PATH:/usr/local/nginxtest/conf/sites/ind.conf
    listen  444;
    charset utf-8;
    server_name  *.域名;
    root   /usr/local/nginxtest/ana/public;
    index  index.html index.htm index.php;
    client_max_body_size 4m;

    error_log  /tmp/nginx_ind_error.log;
    access_log  /tmp/nginx_ind_access.log;

    # ssl
    ssl on;
    ssl_certificate /usr/local/nginxtest/conf/sites/server.crt;
    ssl_certificate_key /usr/local/nginxtest/conf/sites/server.key;

    # 开启gzip
    gzip on;
    gzip_min_length 5k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 3;
    gzip_types text/plain application/json application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
    gzip_vary on;

    # 压缩资源不存在
    if (!-f $request_filename) {
         rewrite ^/dest/(.*)$ /static/$1 break;
    }

    try_files $uri $uri/ @rewrite;
    location @rewrite {
        rewrite ^/(.*)$ /index.php?_url=/$1;
    }
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_param  HTTPS on;
    }
}


参考:
http://www.cnblogs.com/yun007/p/3739182.html
http://blog.csdn.net/kongqz/article/details/9250689
http://www.cnblogs.com/tintin1926/archive/2012/07/12/2587311.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现nginx http自动跳转https,需要在nginx配置文件中添加以下代码: ``` server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; } ``` 其中,yourdomain.com需要替换成你的域名。 这段代码的作用是监听80端口,当有http请求访问时,自动将请求重定向到443端口的https协议。 添加完毕后,需要重新加载nginx配置文件,使其生效。可以使用以下命令: ``` sudo nginx -s reload ``` 这样,当用户访问你的网站时,如果使用http协议,会自动跳转https协议,保证网站的安全性。 ### 回答2: Nginx是一个非常流行的Web服务器和反向代理服务器。它可以用于许多用途,其中之一是将HTTP自动重定向到HTTPS。这是因为HTTPS是一个更安全的协议,可保护用户的隐私和敏感信息。 要实现HTTP自动重定向到HTTPS,必须进行以下操作: 1.在Nginx配置文件中添加HTTPS服务器块。这是必要的,因为HTTPS服务器需要证书和密钥来进行加密通信。可以在一台服务器上设置多个服务器块,每个服务器块可以具有不同的IP地址或端口。 2.在HTTP服务器块中添加重定向指令。有两种常用的重定向指令可以使用。一种是使用return指令,它将客户端的URL重定向到指定的URL。另一种是使用rewrite指令,它允许您对URL进行更复杂的重定向操作,包括更改QUERY_STRING和其他操作。 3.将HTTP服务器块更改为重定向到HTTPS服务器块。可以将所有的HTTP请求都重定向到HTTPS服务器块。这可以通过在HTTP服务器块中添加server_name指令来实现,该指令将包含匹配的主机名。然后可以使用重定向指令将客户端的URL重定向到对应的HTTPS服务器块。 4.配置HTTPS服务器块以使用SSL。必须使用Nginx的SSL模块来配置服务器块以使用SSL。这可以通过在块中添加ssl on指令来实现。还需要配置SSL证书和密钥。 完成上述步骤后,Nginx自动HTTP请求重定向到HTTPS。这可以确保在用户进行通信时保护敏感信息的安全性。 ### 回答3: Nginx是一款流行的Web服务器和反向代理服务器,它可以处理大量的HTTP请求和静态文件。许多网站都要求将HTTP请求自动转发到HTTPS,以确保网站的安全性。在此过程中,Nginx可以帮助我们实现HTTP自动跳转HTTPS。今天,我们将探讨如何在Nginx上实现HTTP自动跳转HTTPS。 要实现HTTP自动跳转HTTPS,我们需要在Nginx的服务器配置中添加以下代码: server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; } 通过添加此代码段,我们可以在Nginx服务器中定义一个HTTP服务监听端口。当HTTP请求到达时,它将会自动转发到HTTPS。返回的“301”是一个重定向HTTP代码,它告诉浏览器当前请求被永久重定向到HTTPS。 您还可以使用以下代码实现HTTPHTTPS服务器的配置: server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /path/to/ssl.crt; ssl_certificate_key /path/to/ssl.key; # HTTPS server configuration } 在这个配置中,我们提供了两个服务器块,一个是HTTP服务器块,另一个是HTTPS服务器块。与前面的服务器配置段类似,此配置要求HTTP请求被自动重定向到HTTPS。 总结: 使用NginxHTTP请求自动重定向到HTTPS网站安全至关重要。实现这一目标的最简单方法是在Nginx服务器的配置中定义HTTP服务器监听端口并使用“301”代码自动将请求转发到HTTPS。通过正确的配置和实现,您可以确保您的站点在网络中的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值