zoukankan      html  css  js  c++  java
  • nginx + tomcat配置https的两种方法

    # The frist method:

    — Nginx and Tomcat using HTTPS:

    1. nginx configuration:

         upstream test {

            server 172.16.7.30:8443 weight=1;

         }

         upstream master {

            server 172.16.7.31:8443 weight=1;

         }

    server {

             listen 80;

             server_name test.hbc315.com master.hbc315.com;

             rewrite ^(.*)$ https://$host$1 permanent;              # Used together ports 80 and 443; Redirect request port from 80 to 443

         }

         server {

             listen 443 ssl;

             server_name test.mysite.com master.mysite.com;

    ssl                   on; 

             ssl_certificate       server.pem; 

             ssl_certificate_key   server.key; 

             ssl_session_timeout   5m; 

             ssl_protocols   TLSv1 TLSv1.1 TLSv1.2;

             #ssl_ciphers   HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM; 

             ssl_ciphers  ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:!EXP;

             ssl_prefer_server_ciphers    on;

             location / { 

                     set $domain "";

                     if ($http_host ~* "^(test)" ) {set $domain "test";}

                     if ($http_host ~* "^(master)" ) {set $domain "master";}

                     proxy_pass  https://$domain;

                     proxy_http_version  1.1;

                     proxy_set_header  Connection "";

                     proxy_redirect           off;

                     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 https;

                     client_max_body_size     500m;

                     client_body_buffer_size  1m;

                     proxy_connect_timeout    600;

                     proxy_send_timeout       600;

                     proxy_read_timeout       600;

                     proxy_buffer_size        400k;

                     proxy_buffers            4 1m;

                     proxy_busy_buffers_size  2m;

                     proxy_temp_file_write_size  1m;

             }

         }

    2. tomcat configuration:

    1) Execute the following command:

    # keytool -genkey -alias tomcat -keyalg RSA -keystore /root/tomcat/conf/ssl.keystore       # Generate certificate KEY

    Enter keystore password:  

    Re-enter new password: 

    What is your first and last name?

         [Unknown]:  192.16.7.30 # domain or IP

    What is the name of your organizational unit?

         [Unknown]:  hbc

    What is the name of your organization?

         [Unknown]:  hbc

    What is the name of your City or Locality?

         [Unknown]:  bj

    What is the name of your State or Province?

         [Unknown]:  bj

    What is the two-letter country code for this unit?

         [Unknown]:  cn # The default CN of china

    Is CN=192.16.7.30, OU=hbc, O=hbc, L=bj, ST=bj, C=cn correct?

         [no]:  y

    Enter key password for <tomcat>

    (RETURN if same as keystore password):  

    Re-enter new password:

    2) Configure server.xml:

         <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

                    maxThreads="150"

    SSLEnabled="true"

    scheme="https"

    secure="true"

                    clientAuth="false" sslProtocol="TLS" 

            keystoreFile="/root/tomcat/conf/ssl.keystore"

            keystorePass="tomcat" /> # The above steps to set the password

    =========================================

    # The second method:

    — Nginx using HTTPS; Nginx with Tomcat interaction using HTTP

    1. nginx configuration:

         upstream test {

            server 172.16.7.30:8080 weight=1; # Here is different from above

         }

         upstream master {

            server 172.16.7.31:8080 weight=1; # Here is different from above

         }

    server {

             listen 80;

             server_name test.hbc315.com master.hbc315.com;

             rewrite ^(.*)$ https://$host$1 permanent;              # Used together ports 80 and 443; Redirect request port from 80 to 443

         }

         server {

             listen 443 ssl;

             server_name test.mysite.com master.mysite.com;

    ssl                   on; 

             ssl_certificate       server.pem; 

             ssl_certificate_key   server.key; 

             ssl_session_timeout   5m; 

             ssl_protocols   TLSv1 TLSv1.1 TLSv1.2;

             #ssl_ciphers   HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM; 

             ssl_ciphers  ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:!EXP;

             ssl_prefer_server_ciphers    on;

             location / { 

                     set $domain "";

                     if ($http_host ~* "^(test)" ) {set $domain "test";}

                     if ($http_host ~* "^(master)" ) {set $domain "master";}

                     proxy_pass  http://$domain;               # Here is different from above

                     proxy_http_version  1.1;

                     proxy_set_header  Connection "";

                     proxy_redirect           off;

                     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 https;               # Here is different from above

                     client_max_body_size     500m;

                     client_body_buffer_size  1m;

                     proxy_connect_timeout    600;

                     proxy_send_timeout       600;

                     proxy_read_timeout       600;

                     proxy_buffer_size        400k;

                     proxy_buffers            4 1m;

                     proxy_busy_buffers_size  2m;

                     proxy_temp_file_write_size  1m;

             }

         }

    2. tomcat configuration:

    Configure server.xml file(On the basis of the default configuration file):

    1) Add port proxy forwarding:

    <Connector port="8080" protocol="HTTP/1.1"

    connectionTimeout="20000"

    redirectPort="443" # Take 8443 to 443

    proxyPort="443"/> # Add a line parameters

    2) Add <host> tag value:

    <Valve className="org.apache.catalina.valves.RemoteIpValve"

    remoteIpHeader="x-forwarded-for"

                       remoteIpProxiesHeader="x-forwarded-by"

                       protocolHeader="x-forwarded-proto"/>

  • 相关阅读:
    C#读写XML no
    ComboBox、ListBox绑定和获取数据 no
    win7 安装oracle 11g no
    2011没有惊天动地 no
    Oracle 删除重复数据只留一条 no
    Oracle 创建用户并分配权限 no
    Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...) no
    谢谢,博客园这么快就审批通过了我的申请!
    Eclipse 中 JAVA AWT相关包不提示问题(解决)
    Eclipse java项目转Maven项目
  • 原文地址:https://www.cnblogs.com/telwanggs/p/14977391.html
Copyright © 2011-2022 走看看