`
hanqunfeng
  • 浏览: 1542182 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx:服务器端SSL配置

 
阅读更多

nginx安装与配置参考:http://hanqunfeng.iteye.com/blog/697696

一、nginx配置

upstream  tomcats_ssl
        {
              server   192.168.33.10:8090 srun_id=tomcat01; 
              server   192.168.33.11:8090 srun_id=tomcat02;
              jvm_route $cookie_JSESSIONID|sessionid reverse;      
              #保证session同步,参考http://hanqunfeng.iteye.com/blog/1920994
              #需要cas验证的应用更要配置,否则会造成死循环。
        }

server {  
        listen 443;  
        server_name nginx.server.name;  
  
        ssl on;   #开启ssl验证
        ssl_certificate /usr/local/nginx/sslkey/server.crt;  #证书
        ssl_certificate_key /usr/local/nginx/sslkey/server.key;   #密钥
        ssl_session_timeout 5m;  #session有效期,5分钟
        ssl_protocols SSLv2 SSLv3 TLSv1;   #ssl协议
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #ssl加密算法
        ssl_prefer_server_ciphers on;  
        location /ssl_test/ {
                proxy_pass http://tomcats_ssl;
                include /usr/local/nginx/proxy.conf;
                access_log  /usr/local/nginx/logs/01.ssl.log  main;
        }    
} 

 

二、生成证书(这里是测试证书)

[root@localhost sslkey]# openssl req -new -x509 -nodes -out server.crt -keyout server.key

 

三、测试

重启nginx,请求:https://nginx.server.name/ssl_test,普通应用即可成功打开。

 

四、需要cas验证的应用

如果后端应用是需要cas登录验证的,则在成功登录cas回调后端服务器时会发生https协议转换为http协议,同时端口443转换为80的情况,导致应用不可正常访问,

例如https://nginx.server.name/ssl_test被cas回调后变为http://nginx.server.name/ssl_test,

目前的解决方案是,在后端服务的tomcat的server.xml中增加如下配置:

将
<Connector port="8090" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />
修改为:
<Connector port="8090" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               scheme="https" proxyName="nginx.server.name"  proxyPort="443"
               redirectPort="8443" URIEncoding="UTF-8" />

 scheme

调用request.getScheme()时返回的协议名称。比如,在SSL Connector上可能将这个属性设为“https”。缺省值为“http”。

 

proxyName

如果connector在代理配置中使用,将这个属性设置成调用request.getServerName()时返回的服务器名称。

 

proxyPort

如果Connector在代理配置中使用,这个属性指定了调用request.getServerPort()返回的端口值。

 

在Tomcat位于代理服务器后面时,可以使用proxyName和proxyPort属性。这些属性修改了调用 requset.getServerName()和request.getServerPort()的返回值,用来构造重定向的绝对URL。如果不设置这 些值,返回值反映了代理服务器收到的连接的服务器名称和端口号,而不是客户端发起的服务器名称和端口号。

 

五、client&&server双向SSL配置

 参考了网上的资料:

http://blog.csdn.net/rosw/article/details/3441187

http://www.linuxidc.com/Linux/2012-11/75130.htm(亲测,见附件)

不过只有Google(双击证书)和Firefox(导入时要选择“您的证书”)浏览器可以通过验证,IE(IE10)虽然成功导入证书,但仍提示证书错误。

 

 

 

 

 

  • ca.zip (13.4 KB)
  • 下载次数: 43
分享到:
评论

相关推荐

    Nginx配置SSL证书监听443端口

    如果需要验证配置是否正确,可以使用在线SSL检查工具测试域名的SSL配置是否正确,或者使用浏览器访问你的HTTPS网站,看是否能够成功加载并显示锁形安全标志。 需要注意的是,SSL证书分为几种类型,比如DV(域名验证...

    服务器端nginx配置文件

    #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; fastcgi_intercept_errors on; sendfile on; #设置长连接 keepalive_...

    nginx环境下配置ssl加密(单双向认证、部分https)

    在Nginx环境下配置SSL加密...总的来说,Nginx下SSL配置包含服务器与客户端安全通信的一系列规则设置和优化操作,以确保网站的数据传输安全。在实际部署过程中,需要根据实际业务需求和性能考量来配置和优化SSL设置。

    ssl证书(nginx+tomcat+java代码适用)

    ssl自制全套证书(包含服务器端、客户端、ca端的证书,格式有.crt,.key,.truststore,.keystore,.p12,.cer,.pem等类型),当时要配置webservice接口、tomca、nginx通过ssl访问的证书,弄了好久才生成了一套能使用的。...

    阿里SSL证书两种配置方法

    对于uniapp应用,我们主要关注的是H5部分的SSL证书配置: 1. **创建自签名证书**:使用OpenSSL等工具生成自签名证书和私钥,这通常用于本地开发和测试环境。 - `openssl req -x509 -newkey rsa:2048 -keyout key....

    Nginx配置如何区分PC或手机访问不同域名

    Nginx是一个高性能的HTTP和反向代理服务器,也常被用作负载均衡器、邮件代理...因此,更先进的方法是使用客户端检测(例如使用CSS媒体查询)或服务器端检测(例如使用Vary HTTP响应头)来实现更加精确的设备适配。

    Linux下nginx配置https协议访问的方法

    这些参数可以帮助你选择支持的SSL/TLS版本和加密套件,以及优先使用服务器端的密钥。 6. **测试与重启Nginx** 保存配置文件后,使用`nginx -t`命令检查配置文件是否有错误。如果没有错误,重启Nginx服务使配置生效...

    webClient 服务器端与客户端配置

    这个场景下,我们讨论的是"webClient"在服务器端和客户端的配置,这是一个关键的网络通信环节,用于实现Web应用程序的功能。下面将详细介绍这个过程中的主要知识点。 一、服务器端配置 1. **服务器软件安装**:...

    项目打包运行dist以及nginx配置

    在项目部署中,Nginx主要负责接收客户端请求,根据配置将请求转发到正确的服务器,同时提供静态资源服务、负载均衡、SSL加密等功能。 配置Nginx时,你需要创建一个或多个server块,每个server块代表一个独立的监听...

    信息技术_nginx双活+双向SSL认证+高并发+安全加固+会话共享+主被动健康探测

    - 需要在Nginx服务器上配置SSL证书,包括服务器端证书和客户端证书。 - 通过自签名证书或第三方CA机构签发的证书进行配置。 **2. 配置示例** - 在Nginx的配置文件中,定义HTTPS服务器块,并配置`ssl_certificate`和...

    Nginx服务器https配置的方法示例

    `来确保服务器端选择加密套件而不是客户端。 6. HTTP严格传输安全(HSTS):通过`add_header Strict-Transport-Security 'max-age=***; preload';`指令强制浏览器通过HTTPS访问,防止明文HTTP连接。 7. 防止点击...

    centos7系统nginx部署前后端分离1

    在本文中,我们将深入探讨如何在 CentOS 7 系统上部署 Nginx 服务器,实现前后端分离的架构。Nginx 是一款高性能的 Web 服务器和反向代理服务器,广泛应用于各种 web 应用场景,特别是对于处理高并发请求具有出色...

    实战Nginx_取代Apache的高性能Web服务器_第5章_Nginx与JSP、ASP.NET、Perl的安装与配置

    ### 实战Nginx:取代Apache的高性能Web服务器——第5章:Nginx与JSP、ASP.NET、Perl的安装与配置 #### Nginx简介 Nginx是一款广泛使用的高性能HTTP和反向代理服务器,它以其轻量级、高并发处理能力以及稳定的性能而...

    nginx基础和优化配置.rar

    总的来说,Nginx的基础配置涉及多个方面,包括基本结构、服务器配置、URL处理和优化等。而优化配置则需要根据实际业务需求,结合负载均衡、缓存策略、安全防护等多个层面进行精细调整,以实现最佳性能和服务质量。...

    微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)

    微信小程序Server环境配置详解 ...所以 Server端环境配置的主要步骤: 申请 SSL 证书 配置web服务器支持https(我使用的是nginx) 升级到 TLS 1.2  SSL证书申请 https 需要使用SSL证书,这个证书的

    Nginx配置http转https以及https访问http静态资源.docx

    Nginx是一款流行的开源Web服务器软件,常用于服务器端的反向代理、负载均衡、媒体流等功能。本文档将详细介绍如何使用Nginx配置http转https,以及https访问http静态资源。 一、Nginx配置http转https 在上面的配置...

    nginx https 配置和需要的证书可以用来测试使用

    # 优先使用服务器端的加密套件 ssl_session_cache shared:SSL:10m; # 缓存 SSL 会话 ssl_session_timeout 10m; # 设置 SSL 会话超时时间 add_header Strict-Transport-Security "max-age=31536000; include...

Global site tag (gtag.js) - Google Analytics