Nginx 安全控制实践

前言

把原来的http请求改造为https


1. 使用SSL对流量进行加密

  HTTPS是一种通过计算机网络进行安全通信的传输协议。它经由HTTP进行通信,利用SSL/TLS加密数据包,确保数据的安全性。

SSL(Secure Sockets Layer)安全套接层
TLS(Transport Layer Security)传输层安全
TLS和SSL在传输层和应用层对网络连接进行加密

Nginx要使用SSL,需要添加模块–with-http_ssl_module,该模块在编译的过程中需要OpenSSL的支持

》将原有/usr/local/nginx/sbin/nginx进行备份
》拷贝nginx之前的配置信息
》在nginx的安装源码进行配置指定对应模块 ./configure --with-http_ssl_module
》通过make模板进行编译
》将objs下面的nginx移动到/usr/local/nginx/sbin下
》在源码目录下执行 make upgrade进行升级,这个可以实现不停机添加新模块的功能

2. nginx配置项

2.1 ssl

  用来在指定的服务器开启HTTPS,可以使用 listen 端口号 ssl,https默认端口443

2.2 ssl_certificate

  为当前虚拟主机指定一个带有PEM格式证书的证书

2.3 ssl_certificate_key

  用来指定PEM secret key文件的路径

3. 使用openssl生成证书

3.1 确认系统是否安装openssl

openssl version

3.2 生成证书

mkdir /usr/local/nginx/conf/cert
cd /usr/local/nginx/conf/cert
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

4. 生产实例

  server {
    listen 1443 ssl;
    server_name localhost;

    ssl_certificate cert/server.crt;
    ssl_certificate_key cert/server.key;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;

    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
      location / {
          root html;
          index index.html index.htm;
        }
      }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但行益事莫问前程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值