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

posted @ 2020-02-26 15:42  RoyFans  阅读(322)  评论(0编辑  收藏