2010-07-28 2 views
1

프록시 (mod_jk)로 SSL을 사용하는 Apache 2.2를 사용합니다. 그것 뒤에 (SSL없이) tomcat6을 실행합니다. http 연결을 사용할 때 모든 것이 정상적으로 작동합니다. 바람둥이 관제사 "http://localhost/manager/html"에 대해,하지만 "https://localhost/manager/html"을 시도하면 "요청한 URL/관리자/html이이 서버에서 발견되지 않았습니다"라는 메시지가 나타납니다. uirworkemap.properties에 뭔가를 추가해야합니까? 도움에 감사드립니다.Tomcat6 Apache2.2 프록시 SSL 뒤에

Windows XP를 사용해야한다는 점을 추가해야합니다.

내 말은이 같은 뭔가 :
-> HTTPS -> apache2.2 -> HTTP -> tomcat6
< - HTTPS < - apache2.2 < - HTTP < - tomcat6

아파치 로그 :

127.0.0.1 - - [28/Jul/2010:13:34:34 +0200] "GET /manager/html HTTP/1.1" 404 210 
127.0.0.1 - - [28/Jul/2010:13:34:34 +0200] "GET /favicon.ico HTTP/1.1" 404 209 

내 workers.properties

worker.list=wlb,jkstatus 
worker.ajp13w.type=ajp13 
worker.ajp13w.host=localhost 
worker.ajp13w.port=8009 
worker.wlb.type=lb 
worker.wlb.balance_workers=ajp13w 
worker.jkstatus.type=status 
httpd.conf 파일에서 16,

uirworkemap.properties

/manager/html/*=wlb 
/manager/html=wlb 
/jkmanager=jkstatus 

mod_jk 경우 가상 호스트와 아파치 - ssl.conf

ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2" 

Listen 80 
#Listen 443 

# 
# Dynamic Shared Object (DSO) Support 
# 
# To be able to use the functionality of a module which was built as a DSO you 
# have to place corresponding `LoadModule' lines at this location so the 
# directives contained in it are actually available _before_ they are used. 
# Statically compiled modules (those listed by `httpd -l') do not need 
# to be loaded here. 
# 
# Example: 
# LoadModule foo_module modules/mod_foo.so 
# 
LoadModule actions_module modules/mod_actions.so 
LoadModule alias_module modules/mod_alias.so 
LoadModule asis_module modules/mod_asis.so 
LoadModule auth_basic_module modules/mod_auth_basic.so 
#LoadModule auth_digest_module modules/mod_auth_digest.so 
#LoadModule authn_alias_module modules/mod_authn_alias.so 
#LoadModule authn_anon_module modules/mod_authn_anon.so 
#LoadModule authn_dbd_module modules/mod_authn_dbd.so 
#LoadModule authn_dbm_module modules/mod_authn_dbm.so 
LoadModule authn_default_module modules/mod_authn_default.so 
LoadModule authn_file_module modules/mod_authn_file.so 
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so 
#LoadModule authz_dbm_module modules/mod_authz_dbm.so 
LoadModule authz_default_module modules/mod_authz_default.so 
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so 
LoadModule authz_host_module modules/mod_authz_host.so 
#LoadModule authz_owner_module modules/mod_authz_owner.so 
LoadModule authz_user_module modules/mod_authz_user.so 
LoadModule autoindex_module modules/mod_autoindex.so 
#LoadModule cache_module modules/mod_cache.so 
#LoadModule cern_meta_module modules/mod_cern_meta.so 
LoadModule cgi_module modules/mod_cgi.so 
#LoadModule charset_lite_module modules/mod_charset_lite.so 
#LoadModule dav_module modules/mod_dav.so 
#LoadModule dav_fs_module modules/mod_dav_fs.so 
#LoadModule dav_lock_module modules/mod_dav_lock.so 
#LoadModule dbd_module modules/mod_dbd.so 
#LoadModule deflate_module modules/mod_deflate.so 
LoadModule dir_module modules/mod_dir.so 
#LoadModule disk_cache_module modules/mod_disk_cache.so 
#LoadModule dumpio_module modules/mod_dumpio.so 
LoadModule env_module modules/mod_env.so 
#LoadModule expires_module modules/mod_expires.so 
#LoadModule ext_filter_module modules/mod_ext_filter.so 
#LoadModule file_cache_module modules/mod_file_cache.so 
#LoadModule filter_module modules/mod_filter.so 
#LoadModule headers_module modules/mod_headers.so 
#LoadModule ident_module modules/mod_ident.so 
#LoadModule imagemap_module modules/mod_imagemap.so 
LoadModule include_module modules/mod_include.so 
#LoadModule info_module modules/mod_info.so 
LoadModule isapi_module modules/mod_isapi.so 
#LoadModule ldap_module modules/mod_ldap.so 
#LoadModule logio_module modules/mod_logio.so 
LoadModule log_config_module modules/mod_log_config.so 
#LoadModule log_forensic_module modules/mod_log_forensic.so 
#LoadModule mem_cache_module modules/mod_mem_cache.so 
LoadModule mime_module modules/mod_mime.so 
#LoadModule mime_magic_module modules/mod_mime_magic.so 
LoadModule negotiation_module modules/mod_negotiation.so 
#LoadModule proxy_module modules/mod_proxy.so 
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
#LoadModule proxy_connect_module modules/mod_proxy_connect.so 
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
#LoadModule proxy_http_module modules/mod_proxy_http.so 
#LoadModule reqtimeout_module modules/mod_reqtimeout.so 
#LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule setenvif_module modules/mod_setenvif.so 
#LoadModule speling_module modules/mod_speling.so 
LoadModule ssl_module modules/mod_ssl.so 
#LoadModule status_module modules/mod_status.so 
#LoadModule substitute_module modules/mod_substitute.so 
#LoadModule unique_id_module modules/mod_unique_id.so 
#LoadModule userdir_module modules/mod_userdir.so 
#LoadModule usertrack_module modules/mod_usertrack.so 
#LoadModule version_module modules/mod_version.so 
#LoadModule vhost_alias_module modules/mod_vhost_alias.so 

#*************** JK_MODULE SECTION *************** 
# load module 

LoadModule jk_module modules/mod_jk.so 

<IfModule jk_module> 

    # We need a workers file exactly once 
    # and in the global server 
    JkWorkersFile conf/workers.properties 

    # Our JK error log 
    # You can (and should) use rotatelogs here 
    JkLogFile logs/mod_jk.log 

    # Our JK log level (trace,debug,info,warn,error) 
    JkLogLevel info 

    # Our JK shared memory file 
    JkShmFile logs/mod_jk.shm 

    # Define a new log format you can use in any CustomLog in order 
    # to add mod_jk specific information to your access log. 
    # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\" \"%{Set-Cookie}o\" %{pid}P %{tid}P %{JK_LB_FIRST_NAME}n %{JK_LB_LAST_NAME}n ACC %{JK_LB_LAST_ACCESSED}n ERR %{JK_LB_LAST_ERRORS}n BSY %{JK_LB_LAST_BUSY}n %{JK_LB_LAST_STATE}n %D" extended_jk 

    # This option will reject all requests, which contain an 
    # encoded percent sign (%25) or backslash (%5C) in the URL 
    # If you are sure, that your webapp doesn't use such 
    # URLs, enable the option to prevent double encoding attacks. 
    # Since: 1.2.24 
    # JkOptions +RejectUnsafeURI 

    # After setting JkStripSession to "On", mod_jk will 
    # strip all ";jsessionid=..." from request URLs it 
    # does *not* forward to a backend. 
    # This is useful, if all links in a webapp use 
    # URLencoded session IDs and parts of the static 
    # content should be delivered directly by Apache. 
    # Of course you can also do it with mod_rewrite. 
    # Since: 1.2.21 
    # JkStripSession On 

    # Start a separate thread for internal tasks like 
    # idle connection probing, connection pool resizing 
    # and load value decay. 
    # Run these tasks every JkWatchdogInterval seconds. 
    # Since: 1.2.27 
    JkWatchdogInterval 60 

    # Configure access to jk-status and jk-manager 
    # If you want to make this available in a virtual host, 
    # either move this block into the virtual host 
    # or copy it logically there by including "JkMountCopy On" 
    # in the virtual host. 
    # Add an appropriate authentication method here! 


    # If you want to put all mounts into an external file 
    # that gets reloaded automatically after changes 
    # (with a default latency of 1 minute), 
    # you can define the name of the file here. 
    JkMountFile conf/extra/uriworkermap.properties 

    # Example for Mounting a context to the worker "balancer" 
    # The URL syntax "a|b" instantiates two mounts at once, 
    # the first one is "a", the second one is "ab". 
    # JkMount /myapp|/* balancer 

    # Example for UnMounting requests for all workers 
    # using a simple URL pattern 
    # Since: 1.2.26 
    # JkUnMount /myapp/static/* * 

    # Example for UnMounting requests for a named worker 
    # JkUnMount /myapp/images/* balancer 

    # Example for UnMounting requests using regexps 
    # SetEnvIf REQUEST_URI "\.(htm|html|css|gif|jpg|js)$" no-jk 

    # Example for setting a reply timeout depending on the requets URL 
    # Since: 1.2.27 
    # SetEnvIf Request_URI "/transactions/" JK_REPLY_TIMEOUT=600000 

    # Example for disabling reply timeouts for certain request URLs 
    # Since: 1.2.27 
    # SetEnvIf Request_URI "/reports/" JK_REPLY_TIMEOUT=0 

    # IMPORTANT: Mounts and virtual hosts 
    # If you are using VirtualHost elements, you 
    # - can put mounts only used in some virtual host into its VirtualHost element 
    # - can copy all global mounts to it using "JkMountCopy On" inside the VirtualHost 
    # - can copy all global mounts to all virtual hosts by putting 
    # "JkMountCopy All" into the global server 
    # Since: 1.2.26 

</IfModule> 

#************* END OF JK_MODULE SECTION ************* 


<IfModule !mpm_netware_module> 
<IfModule !mpm_winnt_module> 
# 

User daemon 
Group daemon 

</IfModule> 
</IfModule> 

# 'Main' server configuration 

# 
# ServerAdmin: Your address, where problems with the server should be 
# e-mailed. This address appears on some server-generated pages, such 
# as error documents. e.g. [email protected] 
# 
ServerAdmin [email protected] 

# 
# ServerName gives the name and port that the server uses to identify itself. 
# This can often be determined automatically, but we recommend you specify 
# it explicitly to prevent problems during startup. 
# 
# If your host doesn't have a registered DNS name, enter its IP address here. 
# 
#ServerName lcjws047.global.ad:80 

# 
# DocumentRoot: The directory out of which you will serve your 
# documents. By default, all requests are taken from this directory, but 
# symbolic links and aliases may be used to point to other locations. 
# 
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" 

# 
# Each directory to which Apache has access can be configured with respect 
# to which services and features are allowed and/or disabled in that 
# directory (and its subdirectories). 
# 
# First, we configure the "default" to be a very restrictive set of 
# features. 
# 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
</Directory> 

# 
# Note that from this point forward you must specifically allow 
# particular features to be enabled - so if something's not working as 
# you might expect, make sure that you have specifically enabled it 
# below. 
# 

# 
# This should be changed to whatever you set DocumentRoot to. 
# 
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"> 
    # 
    # Possible values for the Options directive are "None", "All", 
    # or any combination of: 
    # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 
    # 
    # Note that "MultiViews" must be named *explicitly* --- "Options All" 
    # doesn't give it to you. 
    # 
    # The Options directive is both complicated and important. Please see 
    # http://httpd.apache.org/docs/2.2/mod/core.html#options 
    # for more information. 
    # 
    Options Indexes FollowSymLinks 

    # 
    # AllowOverride controls what directives may be placed in .htaccess files. 
    # It can be "All", "None", or any combination of the keywords: 
    # Options FileInfo AuthConfig Limit 
    # 
    AllowOverride None 

    # 
    # Controls who can get stuff from this server. 
    # 
    Order allow,deny 
    Allow from all 

</Directory> 

# 
# DirectoryIndex: sets the file that Apache will serve if a directory 
# is requested. 
# 
<IfModule dir_module> 
    DirectoryIndex index.html 
</IfModule> 

# 
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
# 
<FilesMatch "^\.ht"> 
    Order allow,deny 
    Deny from all 
    Satisfy All 
</FilesMatch> 


ErrorLog "logs/error.log" 


LogLevel warn 

<IfModule log_config_module> 
    # 
    # The following directives define some format nicknames for use with 
    # a CustomLog directive (see below). 
    # 
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
    LogFormat "%h %l %u %t \"%r\" %>s %b" common 

    <IfModule logio_module> 
     # You need to enable mod_logio.c to use %I and %O 
     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 
    </IfModule> 

    CustomLog "logs/access.log" common 
</IfModule> 

<IfModule alias_module> 
    ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/" 

</IfModule> 

<IfModule cgid_module> 
    # 
    # ScriptSock: On threaded servers, designate the path to the UNIX 
    # socket used to communicate with the CGI daemon of mod_cgid. 
    # 
    #Scriptsock logs/cgisock 
</IfModule> 

# 
# "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin" should be changed to whatever your ScriptAliased 
# CGI directory exists, if you have that configured. 
# 
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> 
    AllowOverride None 
    Options None 
    Order allow,deny 
    Allow from all 
</Directory> 


DefaultType text/plain 

<IfModule mime_module> 
    # 
    # TypesConfig points to the file containing the list of mappings from 
    # filename extension to MIME-type. 
    # 
    TypesConfig conf/mime.types 

    # 
    # AddType allows you to add to or override the MIME configuration 
    # file specified in TypesConfig for specific file types. 
    # 
    #AddType application/x-gzip .tgz 
    # 
    # AddEncoding allows you to have certain browsers uncompress 
    # information on the fly. Note: Not all browsers support this. 
    # 
    #AddEncoding x-compress .Z 
    #AddEncoding x-gzip .gz .tgz 
    # 
    # If the AddEncoding directives above are commented-out, then you 
    # probably should define those extensions to indicate media types: 
    # 
    AddType application/x-compress .Z 
    AddType application/x-gzip .gz .tgz 

    # For type maps (negotiated resources): 
    #AddHandler type-map var 


</IfModule> 

# 
# The mod_mime_magic module allows the server to use various hints from the 
# contents of the file itself to determine its type. The MIMEMagicFile 
# directive tells the module where the hint definitions are located. 
# 
#MIMEMagicFile conf/magic 

# 
# Customizable error responses come in three flavors: 
# 1) plain text 2) local redirects 3) external redirects 
# 
# Some examples: 
#ErrorDocument 500 "The server made a boo boo." 
#ErrorDocument 404 /missing.html 
#ErrorDocument 404 "/cgi-bin/missing_handler.pl" 
#ErrorDocument 402 http://lcjws047.global.ad/subscription_info.html 
# 

# Supplemental configuration 
# 
# The configuration files in the conf/extra/ directory can be 
# included to add extra features or to modify the default configuration of 
# the server, or you may simply copy their contents here and change as 
# necessary. 

# Server-pool management (MPM specific) 
#Include conf/extra/httpd-mpm.conf 

# Multi-language error messages 
#Include conf/extra/httpd-multilang-errordoc.conf 

# Fancy directory listings 
#Include conf/extra/httpd-autoindex.conf 

# Language settings 
#Include conf/extra/httpd-languages.conf 

# User home directories 
#Include conf/extra/httpd-userdir.conf 

# Real-time info on requests and configuration 
#Include conf/extra/httpd-info.conf 

# Virtual hosts 
#Include conf/extra/httpd-vhosts.conf 

# Local access to the Apache HTTP Server Manual 
#Include conf/extra/httpd-manual.conf 

# Distributed authoring and versioning (WebDAV) 
#Include conf/extra/httpd-dav.conf 

# Various default settings 
#Include conf/extra/httpd-default.conf 

# Secure (SSL/TLS) connections 
Include conf/extra/httpd-ssl.conf 
# 
# Note: The following must must be present to support 
#  starting without SSL on platforms with no /dev/random equivalent 
#  but a statically compiled-in mod_ssl. 
# 
<IfModule ssl_module> 
SSLRandomSeed startup builtin 
SSLRandomSeed connect builtin 
</IfModule> 

:

또한 mod_ssl을 추가하고 동일한 구성해야합니다
Listen 443 

## 
## SSL Global Context 
## 
## All SSL configuration in this context applies both to 
## the main server and all SSL-enabled virtual hosts. 
## 

# 
# Some MIME-types for downloading Certificates and CRLs 
# 
AddType application/x-x509-ca-cert .crt 
AddType application/x-pkcs7-crl .crl 

# Pass Phrase Dialog: 
# Configure the pass phrase gathering process. 
# The filtering dialog program (`builtin' is a internal 
# terminal dialog) has to provide the pass phrase on stdout. 
SSLPassPhraseDialog builtin 

# Inter-Process Session Cache: 
# Configure the SSL Session Cache: First the mechanism 
# to use and second the expiring timeout (in seconds). 
#SSLSessionCache   "dbm:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_scache" 
SSLSessionCache  "shmcb:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)" 
SSLSessionCacheTimeout 300 

# Semaphore: 
# Configure the path to the mutual exclusion semaphore the 
# SSL engine uses internally for inter-process synchronization. 
SSLMutex default 

## 
## SSL Virtual Host Context 
## 

<VirtualHost _default_:443> 

# General setup for the virtual host 
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" 
ServerName server.pl:443 
ServerAdmin [email protected] 
ErrorLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/error.log" 
TransferLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/access.log" 

# SSL Engine Switch: 
# Enable/Disable SSL for this virtual host. 
SSLEngine on 

# SSL Cipher Suite: 
# List the ciphers that the client is permitted to negotiate. 
# See the mod_ssl documentation for a complete list. 
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 

# Server Certificate: 
# Point SSLCertificateFile at a PEM encoded certificate. If 
# the certificate is encrypted, then you will be prompted for a 
# pass phrase. Note that a kill -HUP will prompt again. Keep 
# in mind that if you have both an RSA and a DSA certificate you 
# can configure both in parallel (to also allow the use of DSA 
# ciphers, etc.) 
SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server.crt" 
#SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server-dsa.crt" 

# Server Private Key: 
# If the key is not combined with the certificate, use this 
# directive to point at the key file. Keep in mind that if 
# you've both a RSA and a DSA private key you can configure 
# both in parallel (to also allow the use of DSA ciphers, etc.) 
SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server.key" 
#SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server-dsa.key"  

#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire 
<FilesMatch "\.(cgi|shtml|phtml|php)$"> 
    SSLOptions +StdEnvVars 
</FilesMatch> 
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> 
    SSLOptions +StdEnvVars 
</Directory> 

BrowserMatch ".*MSIE.*" \ 
     nokeepalive ssl-unclean-shutdown \ 
     downgrade-1.0 force-response-1.0 

# Per-Server Logging: 
# The home of a custom SSL log file. Use this when you want a 
# compact non-error SSL logfile on a virtual host basis. 
CustomLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_request.log" \ 
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 

#SSLProxyEngine on 
RewriteEngine On 
RewriteRule ^/(.*) http://localhost/$1 

</VirtualHost>         

답변

3

가상 호스트를 추가.

<user-data-constraint> 
    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
</user-data-constraint> 

은 또한 $에 AJP 커넥터 {CATALINA_HOME}을 구성/conf의 : 보안 제약을 위해 바로 가까이 태그 바로 앞에 $ {CATALINA_HOME} /webapps/manager/WEB-INF/web.xml에 추가 /server.xml을 표준 HTTPS 포트 (443)로 전달합니다.

<Connector port="8009" protocol="AJP/1.3" redirectPort="443"/> 
+0

감사합니다, 그 작품. 나는 그것을 사용할 것이다. – Leszek

1

귀하의 아파치.

은 참조 :

http://www.tc.umn.edu/~brams006/selfsign_ubuntu.html

http://onlamp.com/pub/a/onlamp/2008/03/04/step-by-step-configuring-ssl-under-apache.html

사람이 http://localhost/manager/html를 탐색 할 때 당신은 또한 Tomcat이 자동으로 HTTPS로 전환 한 수 SSL

Listen 443 
<VirtualHost *:443> 
    ServerName server_name 
    SSLEngine on 
    SSLCertificateFile certificate_file_path 
    SSLCertificateKeyFile certificate_key_path 
    SSLCertificateChainFile certificate_chain_path 

    RedirectMatch ^/$/

    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" 
    <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" > 
     SSLRequireSSL 
      #other options which you require 
    </Directory> 

    RewriteEngine On 
    RewriteCond %{REQUEST_METHOD} ^TRACE 
    RewriteRule .* - [F] 
</VirtualHost> 
+0

죄송 합니다만, 전체 httpd.conf를 지나치지 않았고, mod_ssl이 있습니다. – Leszek

+0

나는 당신의 연결을 읽는다 그러나 나는 그들이 어떻게 저를 도울 수 있는지 이해하지 않는다. 아파치에서 SSL이 작동하는 것처럼 보입니다. "https : // localhost"라고 입력하면 신뢰할 수없는 인증서에 대한 걱정이 생깁니다. 문제 https 프록시를 통해 바람둥이에서 대답을 얻을 수 없다는 것입니다. – Leszek

+0

ssl 과 같은 가상 호스트를 추가해야합니다 : 대답의 Adde – YoK

관련 문제