zoukankan      html  css  js  c++  java
  • nginx 配置https

    配置站点使用 https,将tomcat、Apache等服务 http 重定向至 https

    1. nginx 的 ssl 模块安装

    查看 nginx 是否安装 http_ssl_module 模块。

    $ /usr/local/nginx/sbin/nginx -V

    如果出现 configure arguments: --with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 nginx.conf 配置)。

    下载 nginx 安装包, nginx官网1.14.1稳定版本tar.gz包。
    # 下载安装包到 src 目录

    $ cd /opt
    $ wget http://nginx.org/download/nginx-1.14.1.tar.gz
    

    解压安装包。

    $ tar -zxvf nginx-1.14.1.tar.gz

    配置 ssl 模块。

    $ cd nginx-1.14.1
    $ ./configure --prefix=/usr/local/nginx --with-http_ssl_module

    使用 make 命令编译(使用make install会重新安装nginx),此时当前目录会出现 objs 文件夹。
    用新的 nginx 文件覆盖当前的 nginx 文件。

    $ cp ./objs/nginx /usr/local/nginx/sbin/

    再次查看安装的模块(configure arguments: --with-http_ssl_module说明ssl模块已安装)。

    $ /usr/local/nginx/sbin/nginx -V
    

    nginx version: nginx/1.14.1

    configure arguments: –with-http_ssl_module

    二、自签SSL证书

    需要先安装openssl,使用openssl给服务器生成RSA密钥及证书。如果是用权威的CA,在你申请CA证书过程中,他会帮你生成私钥,这样你就不需要用openssl生成了。

    # 生成一个RSA私钥,1024是加密强度,一般是1024或2048 
    $ openssl genrsa -out private.key 1024
     
    # 生成一个证书请求
    $ openssl req -new -key private.key -out cert_req.csr
    
    # 自己签发证书,如果要权威CA签发的话,要把cert_req.csr发给CA
    $ openssl x509 -req -days 365 -in cert_req.csr -signkey private.key -out server_cert.crt
    

      

    第2个命令是生成证书请求,会提示输入省份、城市、域名(图中的Common Name)、Email等,这里主要是保证Common Name用网站域名,

    如果没有申请域名,客户端直接通过服务器IP访问,那这里就输入服务器IP。另外,对于自签名的证书,建议生成的私钥不要加密。生成的

    书请求文件cert_req.csr中除了包含这些手动输入的信息外,它还包含private.key对应的公钥,你可能会有一个疑问,根据私钥就能生成公钥吗?

    当然不是,如果只单纯的知道私钥,可以认为是无法计算出公钥的,关键在于Putty在产生私钥时,还会在内存中保存必要的公钥参数。最后由该证

    书生成自签的证书

    ... 
       # HTTPS server
        #
        server {
            listen       443 ssl;
            server_name  xxx.com(网址访问地址);
    
        ssl on;
            ssl_certificate      /usr/local/nginx/ssl/server_cert.crt;
            ssl_certificate_key  /usr/local/nginx/ssl/private.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
            proxy_redirect http:// $scheme://;
    	port_in_redirect on;
            location / {
                root   xxx(前端代码目录);
                index  index.html index.htm;
            }
        }
    ·server {
            listen      80;
            server_name  xxx.com;
    		rewrite ^(.*) https://$server_name$1 permanent;
            }
    ...
    

      

    参考:

    https://www.cnblogs.com/ajianbeyourself/p/3898911.html
    https://blog.csdn.net/weixin_37264997/article/details/84525444

  • 相关阅读:
    jquery基本用法
    js里BOM和DOM操作
    js基础语法
    java将json格式的字符串转化为对象数组
    Java生成Excel并导入数据
    mybatis的xml中使用foreach循环拼接(sql中的 in 语法)
    FreeMarker在List中取任意一条数据的某一个值
    freemarker中的常用语法
    Java将日期转化为大写格式(阿拉伯大写数字)
    项目中出现The import javax.servlet cannot be resolved 的解决方法
  • 原文地址:https://www.cnblogs.com/royfans/p/12367350.html
Copyright © 2011-2022 走看看