nginx 使用ssl的方法代理tomcat

一.配置tomcat

  1. 生成私钥
openssl genrsa -out tomcatkey.pem

2. 使用私钥自签证书

openssl req -new -x509 -key tomcatkey.pem -out tomcatca.pem -days 1095

3.配置tomcat的https连接器,修改server.xml文件,这里是配置的apr模式

<Connector port="8443" SSLEnabled="true"  protocol="org.apache.coyote.http11.Http11AprProtocol"
 SSLCertificateFile="/home/hxtest/tomcat6/conf/ssl/tomcatca.pem" SSLCertificateKeyFile="/home/hxtest/tomcat6/conf/ssl/tomcatkey.pem"   maxThreads="500" scheme="https" secure="true" sslProtocol="TLSv1+TLSv1.1+TLSv1.2"  SSLVerifyClient="optional"  />

二.配置nginx

1.生成私钥

openssl genrsa -des3 -out ssl.key 1024

2.创建证书签名请求(CSR)

openssl req -new -key ssl.key -out ssl.csr

3.清除SSL启动nginx时提示必须输入密钥

cp ssl.key ssl.key.org

openssl rsa -in ssl.key.org -out ssl.key

4.使用刚生成的私钥和CSR进行证书签名

openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt

5.把私钥和证书加入到nginx.conf的配置文件中

ssl_certificate      /etc/nginx/ssl/ssl.crt;
     ssl_certificate_key  /etc/nginx/ssl/ssl.key;

三.配置nginx 使用https协议代理tomcat。

# HTTPS server
    #
    server {
        listen       443 ;
        server_name  192.168.100.2;#本机nginx的IP地址
        ssl on;
    ### SSL log files ###
        access_log      /var/log/nginx/ssl-access.log;
        error_log       /var/log/nginx/ssl-error.log;

### SSL cert files ###
       ssl_certificate      /etc/nginx/ssl/ssl.crt;
       ssl_certificate_key  /etc/nginx/ssl/ssl.key;
    ###  Limiting Ciphers ########################
       ssl_session_cache    shared:SSL:10m;
       ssl_session_timeout  5m;
    # Intermediate configuration. tweak to your needs.
#       ssl_protocols TLSv1.1 TLSv1.2;
       ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-RC4-SHA:!ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:!RC4-SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!CBC:!EDH:!kEDH:!PSK:!SRP:!kECDH;
       ssl_prefer_server_ciphers  on;
#       ssl_ecdh_curve secp384r1;
#       ssl_session_tickets off;
#       ssl_stapling on;
#       ssl_stapling_verify on;
#       ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
       add_header Strict-Transport-Security max-age=31536000;
       add_header X-Frame-Options DENY;

add_header X-Content-Type-Options nonsniff;

##############################################
    ### We want full access to SSL via backend ###
        location / {
        proxy_pass https://192.168.100.2:8443;#代理的tomcat的IP地址
    #        root   html;
        index  index.html index.htm index.php;
#       proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
       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;

}

时间: 2024-08-11 13:08:46

nginx 使用ssl的方法代理tomcat的相关文章

nginx或httpd实现反向代理tomcat并实现会话保持(二)

实例一:手动添加一个应用程序: 创建一个webapp的目录 [[email protected] myweb]# mkdir webapp [[email protected] webapp]# mkdir logs [[email protected] myweb]# cd webapp/ [[email protected] webapp]# mkdir./{classes,lib,META-INF,WEB-INF,Root} 在Root目录下创建自定义的index.jsp文件 [[emai

Nginx部署SSL证书反向代理

1.环境简介 使用一台centos6.4系统部署Nginx反向代理,代理客户的网站,客户需要提供ssl证书,可以到ca认证中心申请,由于第一次部署因此闹了不少乌龙. 2.安装Nginx,配置方向代理 (1)安装依赖环境 yum -y install gcc* pcre zlib (2)安装Nginx yum -y install nginx (3)编辑配置文件 vi /etc/nginx/conf.d/default.cof server { # listen 80 ; listen 443 s

Tengine(Nginx)配置SSL(https),应用服务器(Tomcat)无需配置

要点:如果系统是内部用,可以通过openssl生成证书,只是访问的时候,浏览器会提示不信任, 1.生成证书,创建存放证书的目录/home/sslkey,并进入该目录,输入如下命令,按照提示填写相关的注册信息,完成后,会生成web.key.web.csr.web.key.org.web.crt这几个文件 openssl genrsa -des3 -out web.key 2048 openssl req -new -key web.key -out web.csr cp web.key web.k

nginx增加ssl服务方法

1.将申请到的ssl加密证书文件拷贝到nginx的conf目录下 如:server.pem.server.key 2.vim nginx.conf 例子: server { listen 443 ssl; #listen 80; server_name www.test.com; ssl_certificate server.pem; ssl_certificate_key server.key; ssl_session_cache shared:SSL:1m; ssl_session_time

nginx设置SSL反向代理

Nginx的反向代理通常用来映射内网中提供的Apache.IIS.Lighttpd服务,以实现负载均衡:同时,由于动态服务程序运行在内网,服务器的整体安全性也有所提高,那么怎样用nginx设置SSL的反向代理呢? 使用nginx设置SSL的优点不少: 易用性:nginx安装.升级简单,nginx的平滑升级使得网站服务器不需要重启就可以完成升级任务. 安全性:nginx对于代理是透明的,因此,相当于为放置在代理后的Apache等服务器提供一道安全屏障.可以抵御一些基本web的攻击. 低负载:负载低

Nginx配置SSL自签名证书

生成自签名SSL证书 生成RSA密钥(过程需要设置一个密码,记住这个密码) $ openssl genrsa -des3 -out domain.key 1024 拷贝一个不需要输入密码的密钥文件 $ openssl rsa -in domain.key -out domain_nopass.key 生成一个证书请求 $ openssl req -new -key domain.key -out domain.csr 这里会提示输入国家,地区组织,email等信息.最重要的一个是"common

Nginx反向代理Tomcat的配置方法

一.Nginx安装 下载nginx源安装包 http://nginx.org/en/linux_packages.html 找到对应Linux版本的连接,这里选CentOS 6,右击复制链接地址"http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm " 在linux下下载nginx源的rpm包并安装 wget http://nginx.org/packages

tomcat配置及基于nginx、apache反向代理tomcat

如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求.我们需要一个交互式的Web,于是便诞生了各种Web语言.如Asp,Jsp,Php等.当然,这些语言与传统的语言有着密切的联系,如Php基于C和C 语言,Jsp基于Java语言.Tomcat即是一个Jsp和Servlet的运行平台. Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成.由于有了Sun的参与和支持,最新

nginx代理tomcat

http://blog.csdn.net/kongqz/article/details/6838989 http://www.800l.com/linux-nginx-tomcat-jdk.html http://wangxr66.iteye.com/blog/1559082 开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务.之初,曾有个小小的疑问为何不采用开源的apache.Nginx