Nginx服务器的SSL证书配置以及对SSL的反向代理配置

Nginx的SSL证书配置
1、使用openssl实现证书中心
由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书、服务端证书、客户端证书中都相同

Country Name
 State or Province Name
 Locality Name
 Organization Name
 Organizational Unit Name

Country Name
 State or Province Name
 Locality Name
 Organization Name
 Organizational Unit Name

编辑证书中心配置文件

vim /etc/pki/tls/openssl.cnf
[ CA_default ]
 dir    = /etc/pki/CA
 certs   = $dir/certs   # Where the issued certs are kept
 crl_dir   = $dir/crl    # Where the issued crl are kept
 database  = $dir/index.txt  # database index file.
 #unique_subject = no     # Set to 'no' to allow creation of
 # several ctificates with same subject.
 new_certs_dir = $dir/newcerts   # default place for new certs.
 certificate  = $dir/cacert.pem  # The CA certificate
 serial   = $dir/serial   # The current serial number
 crlnumber  = $dir/crlnumber  # the current crl number          # must be commented out to leave a V1 CRL
 crl    = $dir/crl.pem   # The current CRL
 private_key  = $dir/private/cakey.pem# The private key
 RANDFILE  = $dir/private/.rand # private random number file
[ req_distinguished_name ]
 countryName      = Country Name(2 letter code)
 countryName_default    = CN
 countryName_min     = 2
 countryName_max     = 2
 stateOrProvinceName    = State or Province Name (full name)
 stateOrProvinceName_default  = FJ
 localityName     = Locality Name (eg, city)
 localityName_default   = FZ
 0.organizationName    = Organization Name (eg, company)
 0.organizationName_default  = zdz
 organizationalUnitName   = Organizational Unit Name (eg, section)
 organizationalUnitName_default = zdz

创建证书私钥

cd /etc/pki/CA/private
 (umask 077;openssl genrsa -out cakey.pem 2048

)
生成自签证书

cd /etc/pki/CA/

 openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days=3655

2、创建服务器证书

mkdir /usr/local/nginx/ssl
 cd /usr/local/nginx/ssl
 (umask 077;openssl genrsa -out nginx.key 1024)
 openssl req -new -key nginx.key -out nginx.csr
 openssl ca -in nginx.csr -out nginx.crt -days=3650

3、创建客户端浏览器证书

(umask 077;openssl genrsa -out client.key 1024)
 openssl req -new -key client.key -out client.csr
 openssl ca -in client.csr -out client.crt -days=3650

将文本格式的证书转换成可以导入浏览器的证书

 openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

4、配置nginx服务器验证

vim /usr/local/nginx/conf/nginx.conf
 ssl on;
 ssl_certificate   /usr/local/nginx/ssl/nginx.crt;
 ssl_certificate_key  /usr/local/nginx/ssl/nginx.key;
 ssl_client_certificate /usr/local/nginx/ssl/cacert.pem;
 ssl_session_timeout  5m;
 #ssl_verify_client  on;       服务器验证客户端,暂时不开启,让没有证书的客户端可以访问,先完成单向验证
 ssl_protocols   SSLv2 SSLv3 TLSv1;

SSL反向代理
1.修改nginx.conf配置

server {
  listen   443 ssl;
  server_name  www.jb51.net;

  ssl_certificate  ssl/www.jb51.net.crt;
  ssl_certificate_key ssl/www.jb51.net.key;
  ssl_prefer_server_ciphers on;
  keepalive_timeout 60;
 ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;

  location / {
   proxy_pass http://www.jb51.net;
   proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    proxy_set_header  Accept-Encoding "";
   proxy_set_header  Host   $host;
   proxy_set_header  X-Real-IP  $remote_addr;
   proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header  X-Forwarded-Proto $scheme;
 add_header    Front-End-Https on;
   proxy_redirect  off;
  }
}

2.重启服务

# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload
(0)

相关推荐

  • Nginx+SSL+Node.js运行环境配置教程

    Nginx是一款高性能的HTTP服务器,同时也是一款高效的反向代理服务器.不像传统的服务器,Nginx是基于事件驱动的异步架构,内存占用少但是性能很好.如果你的Web应用是基于Node.js的,那么建议你考虑使用Nginx来做反向代理,因为Nginx可以非常高效地提供静态文件服务.本文的主要内容是在不同的操作系统下配置Nginx和SSL,并且搭建一个Node.js运行环境. 安装Nginx 假设你已经在服务器上安装了Node.js,下面我们来安装Nginx. 在Mac系统上安装Nginx 利用c

  • Nginx服务器中关于SSL的安全配置详解

    本文向你们展示如何在nginx的web服务器上设置更强的SSL.我们是通过使SSL无效来减弱CRIME攻击的这种方法实现.不使用在协议中易受攻击的SSLv3以及以下版本并且我们会设置一个更强的密码套件为了在可能的情况下能够实现Forward Secrecy,同时我们还启用HSTS和HPKP.这样我们就有了一个更强.不过时的SSL配置并且我们在Qually Labs SSL 测试中得到了A等级. 我们在nginx的设置文档中如下编辑 复制代码 代码如下: /etc/nginx/sited-enab

  • Nginx 下配置SSL证书的方法

    1.Nginx 配置 ssl 模块 默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模块方法如下: 下载 Nginx 0.7.64 版本,解压 进入解压目录: 复制代码 代码如下: wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz tar zxvf nginx-0.7.64.tar.gz cd nginx-0.7.64 如果要更改heade

  • Linux下Nginx安全证书ssl配置方法

    分享下我是如何一步步在Nginx上配置SSL的.首先,确保安装了OpenSSL库,并且安装Nginx时使用了–with-http_ssl_module参数. 初学者或者菜鸟建议使用LNMP进行一键安装. 生成证书:进入要生成证书的目录cd /usr/local/nginx/conf 使用openssl创建创建服务器私钥,输入相应提示的信息 复制代码 代码如下: openssl genrsa -des3 -out server.key 1024 创建证书签名请求(Certificate Signi

  • nginx配置ssl双向验证的方法

    1.安装nginx略 http://www.jb51.net/article/49479.htm 2.使用openssl实现证书中心 由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书.服务端证书.客户端证书中都相同 Country Name State or Province Name Locality Name Organization Name Organizational Unit Name 编辑证书中心配置文件 vim /etc/pki/tls/openssl

  • CentOS 6.7下nginx SSL证书部署的方法

    环境 系统环境:CentOS6.7 nginx version: nginx/1.8.1 证书 # ls /opt/nginx/conf/ssl qingkang.me.crt # 公钥 qingkang.me.key # 私钥 配置 vim nginx.conf 找到以下内容 # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certif

  • 在Nginx服务器中启用SSL的配置方法

    生成证书 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(CSR): $ openssl req -new -key server.key -out server.csr 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: $ cp server.ke

  • Nginx七层及四层反向代理配置的全过程

    目录 部署测试http服务 nginx反向代理http服务 nginx通过https反向代理http服务 NginxStream模块负载均衡测试 准备测试用https服务 nginxstream安装配置 负载均衡策略 默认采用轮询算法 一致性hash算法测试 附:负载均衡四层和七层的区别 总结 本文旨在测试 nginx对 http服务 https 服务 的代理方式. 部署测试 http服务 准备测试服务程序 gintest 并启动如下 [root@localhost ~]# sudo nohup

  • 详解 Nginx 负载均衡和反向代理配置和优化

    Nginx 负载均衡和反向代理配置和优化 DNS 轮询方式: 介绍: DNS 轮询是指一个域名可以绑定到多个的 ip 服务器上, 用户在访问的时候 dns轮询访问这几个 ip 的服务器, 达到负载均衡的目的. 可以使用 linux 命令 dig domain 来查看情况. 缺点: 1. 可靠性低. 如果某一个服务器宕机了, 那么dns 在轮询到这个服务器的话是不会有响应的,即使去掉此 ip , 那么个电信服务商的 dns 是存在缓存, 在一定的时间内也是可以访问到此服务器的.尽管在一定程度上解决

  • Nginx反向代理配置的全过程记录

    一.准备工作 Linux系统安装Tomcat,使用默认端口8080,启动Tomcat服务器 可以正常访问 接下来想要通过Nginx反向代理,转发请求到Tomcat服务器.对外暴露的是Nginx反向代理服务器的端口号,而Tomcat不对外暴露.浏览器不能直接访问到Tomcat,而是通过Nginx反向代理服务器才能访问到Tomcat 二.反向代理配置 在Windows系统的host文件进行域名和IP地址映射关系的配置 可以通过域名8080端口访问到Tomcat服务器 然后在Nginx进行请求转发的配

  • Nginx配置 location模块实现路由(反向代理、重定向)功能

    目录 前置文章: 匹配规则 proxy_pass 代理转发 root 与 index root 与 alias location 执行过程 rewrite 重定向 前置文章: Linux(CentOS7) 下 Nginx1.15.8 安装步骤 Nginx 的配置文件 nginx.conf 我们访问一个网址,服务器返回对应的资源.那么一个网址是如何对应一个资源的呢?用 Nginx 可以很好地帮我们实现路由功能,我们所有需要做的就是配置好 location 模块. 语法规则 location [=|

  • 利用python自动生成docker nginx反向代理配置

    利用python自动生成docker nginx反向代理配置 由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候,自动生成nginx反向代理,然后reload nginx 我的原则是尽量简单,轻量,内存占用少 目标很明确,只要能监听到docker的容器启动/停止事件,即可 网上查了一下可以用docker events来监听docker事件,试了一下

  • nginx反向代理配置去除前缀案例教程

    使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务.设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法: 方法一:加"/" server { listen 8000; server_name abc.com; access_log "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G" mai

  • 详解vue-cli构建项目反向代理配置

    本文介绍了vue-cli构建项目反向代理配置,分享给大家,具体如下: proxyTable: {//配置请求代理 '/dlsys':{ target:'http://192.168.16.209:81', changeOrigin:true, pathRewrith:{ '^/dlsys': '/dlsys' } }, '/dlapi':{ target:'http://192.168.16.209:81', changeOrigin:true, pathRewrith:{ '^/dlapi':

  • Nginx服务器的SSL证书配置以及对SSL的反向代理配置

    Nginx的SSL证书配置 1.使用openssl实现证书中心 由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书.服务端证书.客户端证书中都相同 Country Name State or Province Name Locality Name Organization Name Organizational Unit Name Country Name State or Province Name Locality Name Organization Name Or

  • nginx proxy_pass反向代理配置中url后加不加/的区别介绍

    前言 nginx作为web服务器一个重要的功能就是反向代理.nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理. 而在日常的web网站部署中,经常会用到nginx的proxy_pass反向代理,有一个配置需要弄清楚:配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走(这样配置可以参考这篇文章). 下面举个小实

  • 详解Nginx HTTP负载均衡和反向代理配置

    当前大并发的网站基本都采用了Nginx来做代理服务器,并且做缓存,来扛住大并发.先前也用nginx配置过简单的代理,今天有时间把整合过程拿出来和大家分享,不过其中大部分也是网上找来的资源. nginx完整的反向代理代码如下所示  : [root@data conf]# vim nginx.conf user www www; worker_processes 10; error_log /var/log/nginx/nginx_error.log; pid logs/nginx.pid; wor

随机推荐