Nginx+Tomcat+HTTPS

4073 단어
tomcat 설정 HTTPS
Tomcat 은 JKS, PKCS11, PKCS12 형식의 keystore 만 지원 합 니 다.JKS 는 자바 표준 형식 Java KeyStore 의 줄 임 말로 자바 자체 keytool 도 구 를 사용 하여 만 들 수 있 습 니 다.PKCS12 는 인터넷 의 표준 으로 OpenSSL 이나 Key - Manager (Microsoft) 를 사용 하여 생 성 할 수 있다.
새 인증서 사용PKCS11PKCS12 에 대해 서 는 아 리 클 라 우 드 나 텐 센트 클 라 우 드 가 제공 하 는 서 비 스 를 이용 할 수 있다.간단 한 견 해 를 위해 본 고 는 주로 소개 JKSJKS
  • 인증서 만 들 기
  • Windows
    keytool -genkey -alias tomcat -keyalg RSA
    

    Linux
    keytool -genkey -alias tomcat -keyalg RSA
    

    인증 서 는 기본적으로 사용자 루트 디 렉 터 리 에 저 장 됩 니 다. -keystore 옵션 을 사용 하여 인증서 의 생 성 위 치 를 지정 할 수 있 습 니 다.
    Tomcat 설정
    Tomcat 은 두 가지 다른 방식 으로 SSL 을 실현 합 니 다.
  • JSSE
  • APR

  • 확보 오픈
    다음은 JSSE 방식 으로 설정 합 니 다.
    JSSE
    protocol 사용 org.apache.coyote.http11.Http11NioProtocol예시:
    
    
    

    중요 한 것 은 keystoreFile 이 고 그 값 은 'keystore' 입 니 다.keystorePass 인증 서 를 만 들 기 위 한 비밀번호
    끝나다
    이로써 Tomcat 의 HTTPS 설정 이 완료 되 었 고 접근 https://localhost:8443/ 테스트 가 완료 되 었 습 니 다.사용 가능 https://localhost:8080/ 테스트
    Nginx HTTPS 설정 및 Tomcat 대리
    nginx 설치 시 SSL 을 켜 야 합 니 다. 즉, 추가 --with-openssl 옵션 입 니 다.
    ./configure --prefix=/data/nginx/nginx-1.12.2 --sbin-path=/data/nginx/nginx-1.12.2/bin --conf-path=/data/nginx/nginx-1.12.2/conf/nginx.conf --pid-path=/data/nginx/nginx-1.12.2/pid/nginx.pid --with-http_realip_module --with-http_sub_module --with-http_flv_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-http_addition_module --with-pcre=/data/nginx/pcre-8.39 --with-zlib=/data/nginx/zlib-1.2.11 --with-openssl=/data/nginx/openssl-1.0.2
    
    #user  nobody;
    worker_processes  1;
    
    error_log  logs/error.log;
    
    #pid        logs/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
        
        # PUBLIC server
        upstream public_server {
            server localhost:8080 weight=1 max_fails=5 fail_timeout=30s;
        }
    
        # HTTP
        server {
        # define attribute
            listen       80;
            server_name  localhost;
            charset utf-8;
    
            # redirece https
            rewrite ^ https://$http_host$request_uri? permanent;
    
            # define error page
            error_page 500 502 503 504  /50x.html;
            location = /50x.html {
                access_log logs/nginx_error.log;
                root   html;
            } 
    
            location / {
                access_log logs/nginx_server.log;
                root   html;
                index  index.html index.htm;
            }
        }
    
    
        # HTTPS 
        server {
            # define attribue
            listen          443 ssl;
            server_name     localhost;
            keepalive_timeout   70;
    
            server_tokens off;
            fastcgi_param   HTTPS               on;
            fastcgi_param   HTTP_SCHEME         https;
            
            access_log      /usr/local/web/nginx/nginx-1.12.2/logs/wiki.xby1993.net.access.log;
            error_log       /usr/local/web/nginx/nginx-1.12.2/logs/wiki.xby1993.net.error.log;
            
            # define ssl
            ssl_certificate /usr/local/web/nginx/ssl/nginx.crt;
            ssl_certificate_key /usr/local/web/nginx/ssl/nginx.key;
    
            location / {
                proxy_pass http://public_server/$request_uri;
            }
        } 
    
    }
    

    좋은 웹페이지 즐겨찾기