`
hanqunfeng
  • 浏览: 1527084 次
  • 性别: 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配置文件

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

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

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

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

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

    微信小程序 Nginx环境配置详细介绍

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

    微信小程序Nginx环境配置

    作者:Assassinの,来自原文地址 ...所以 Server端环境配置的主要步骤: 申请 SSL 证书 配置web服务器支持https(我使用的是nginx) 升级到 TLS 1.2    SSL证书申请 https 需要使用SSL证书,这个证书的价格为每年

    nginx-craft:用于Craft CMS的Nginx虚拟主机配置,实现了许多最佳实践

    Nginx的Craft.io ...服务器端包含 (可选)包括生成的.env文件 假设 以下是在此配置中做出的假设: 该网站是https SSL证书来自LetsEncrypt.com 规范域是SOMEDOMAIN.com(无 。) Nginx是1.9.5或更高版本

    Nginx反向代理多域名的HTTP和HTTPS服务的实现

    当前Nginx已经反向代理了两个网站,分别是基于Windows的IIS和Linux的Apach服务器,提供网页服务。 现在有新项目的网页需要对外提供服务,需要在代理服务器上增加...Nginx代理服务器配置: worker_processes auto; erro

    Nginx下配置Https证书详细过程

    HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 HTTPS:是以安全为...

    music:没有服务器端脚本的在线音乐文件夹播放器

    没有服务器端脚本,没有javascript依赖项。系统要求Nginx&gt; = 1.7.9安装将index.html放在/var/www/music ,并像这样配置Nginx server { listen 443 ssl http2; server_name music.your.domain; location / { root /...

    nginx-nodejs-mongo:NGINX作为MongoDB数据仓库的2个nodejspython api的反向代理(在PSS配置中)

    Energetic Pixels的Nginx / NodeJS / MongoDB(单个实例) nginx作为两个节点实例的反向代理服务器(负载平衡,ssl)的简单流浪汉盒。 API框将开发模式下的nodejs的来宾端口3000和3001转发到9001和9002(主机端)。 ...

    wireguard-configuration

    HOSTNAME=192.168.128.1export REMOTE_PORT=12345./client.shAlt键Websocket上的Wireguard( TODO ) 安装websocat cargo install --features=ssl websocat 如果将nginx用作websocat代理,请首先配置nginx。...

    给 Frp 穿透的内网 Web 上 https.doc

    第一方法是在服务器端使用Nginx。Nginx监听80和443端口,把来自域名的请求,通过Nginx的反向代理转发给frps监听的端口(比如7000),再由frps在转发给frpc处理http响应。在Nginx里配置上https证书,由Nginx实现ssl的...

    收集并展示众多服务器状态的服务StatHub.zip

    当然可以,请在域名解析中添加一条指向服务器端 IP 的 A 记录,然后用 https://子域名.域名:15944 访问即可。我可以用 https 访问页面吗?  没问题,并且SSL是默认启用的,不过用的是自签名证书。我可以不用...

    proxrox:代理服务,结合来源,在开发过程中使用SSI等

    普罗克斯 在开发过程中,避免SOP问题,结合来源,代理服务,使用SSL,SPDY,SSI等…! | | | Proxrox是一个命令行实用程序,它可以启动本地Nginx实例来提供静态文件,在单个来源下代理一...启用服务器端包含,传输层

    2023最新Ai创系统ChatGPT程序源码+教程/支持ai绘画/GPT4/GPT联网功能/知识库/思维导图生成/MJ以图生图

    配置SSL 将程序上传并解压到网站根目录下 配置.env文件 在宝塔直接双击.env.example文件编辑,或在终端vim编辑 配置完成后将文件后缀删掉、文件名字就是.env 2.3 安装依赖 使用终端切换到网站目录 cd /www/wwwroot/...

    ember-cli-wordpress-jsonapi:ember-cli wordpress json-api 插件

    ember-cli-wordpress-jsonapi 这个 ember-cli 插件正在开发中。 它通过使用 Wordpress 作为内容后端 安装 使用 npm 在您的 ember 添加中安装, ...我建议为此设置服务器端代理。 一个 nginx 配置示例是, locat

    万岳网校源码v2.2.0 web版+采用原生语言开发+多端互通+支持多种直播课堂形式

    4.添加站点、数据库(站点需要配置 ssl 证书`) 设置完毕之后,我们可以正常的添加站点、数据库,这个很简单,直接设置就可以。 搭建好了之后会提示:成功创建站点 建立完站点,由于是 tp5 框架,所以我们要修改下网站...

    PhpStudy8.0.1.zip

    phpstudy 8正式版是一款phpstudy官方最新发布的PHP调试环境的程序集成包,已经经过测试,能够为服务器环境提供最优配置的解决方案,能够支持windows、CentOS、Ubuntu、Debian、Fedora、deepin等系统,支持Web端管理...

    全新最火表情包小程序源码流量主无限裂变斗图小程序

    后端源码采用的是ThinkCMF6.0的框架,前端是微信原生的代码,后端服务器配置推荐:Nignx1.18+Mysql5.6+PHP7.2。 表情包小程序前后端搭建教程 前端:使用微信开发者工具导入前段源码 1.打开project.config.json文件...

Global site tag (gtag.js) - Google Analytics