apache i mod_ssl

Czesiek czesiek w innozyt.pl
Śro, 6 Gru 2006, 12:34:34 CET


Przemysław Backiel napisał(a):
>>
>>> ale dyrektywy
>>> NameVirtualHost nie używasz?
>>>
>>>
>>>
>> Ano mam taką dyrektywę w /etc/httpd/apache.conf:
>>
>> NameVirtualHost foo.pl:80
> a masz więcej Vhostów, czy tylko ten jeden ?
> kurde.. nie moge znalezc błedu :(
>
>
poniżej masz cały mój 20_mod_vhost_alias.conf

# $Id: apache-mod_vhost_alias.conf,v 1.5 2005/12/21 13:20:12 glen Exp $
LoadModule vhost_alias_module   modules/mod_vhost_alias.so

<IfModule mod_vhost_alias.c>

# VirtualHost: Allows the daemon to respond to requests for more than one
# server address, if your server machine is configured to accept IP packets
# for multiple addresses. This can be accomplished with the ifconfig
# alias flag, or through kernel patches like VIF.

# Any httpd.conf or srm.conf directive may go into a VirtualHost command.
# See also the BindAddress entry.

#<VirtualHost host.some_domain.com>
#ServerAdmin webmaster w host.some_domain.com
#DocumentRoot /www/docs/host.some_domain.com
#ServerName host.some_domain.com
#ErrorLog logs/host.some_domain.com-error_log
#TransferLog logs/host.some_domain.com-access_log
#</VirtualHost>

## Virtual Host dla www.foo.pl
<VirtualHost www.foo.pl:80>
    ServerAdmin webmaster w foo.pl
    DocumentRoot /web_pages/foo
    ServerName www.foo.pl
    ErrorLog logs/www.foo.pl-error_log
    TransferLog logs/www.foo.pl-acces_log
</VirtualHost>


# Virtual Host dla mail.foo.pl na porcie 80
<VirtualHost mail.foo.com.pl:80>
    ServerAdmin postmaster w foo.pl
    DocumentRoot /web_pages/mail
    ServerName mail.foo.com.pl
</VirtualHost>

# Virtual Host dla foo1.pl
<VirtualHost www.foo1.pl:80>
    ServerAdmin webmaster w foo1.pl
    DocumentRoot /web_pages/foo1
    ServerName www.foo1.pl
    ServerAlias foo1.pl *.foo1.pl
    ErrorLog logs/www.foo1.pl-error_log
    TransferLog logs/foo1.pl-access_log
</VirtualHost>
</IfModule>


Tutaj masz mój 40_mod_ssl.conf

# $Id: apache-mod_ssl.conf, v 1.17 2006/06/15 17:40:50 glen Exp $
LoadModule ssl_module   modules/mod_ssl.so

# This is the Apache server configuration file providing SSL support.
# It contains the configuration directives to instrauct the server how to
# serve pages over an https connection. For detailing information about 
these
# directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>

<IfModule mod_ssl.c>
#
# Pseudo Random Number Generator (PRNG):
# Configure one or more sources to seed the PRNG of the SSL library.
# The seed data should be of good random quality.
# WARNING! On some platforms /dev/random blocks if not enough entropy
# is available. This means you then cannot use the /dev/random device
# because it would lead to very long connection times (as long as
# it requires to make more entropy available). But usually those
# platforms additionally provide a /dev/urandom device which doesn't
# block. So, if available, use this one instead. Read the mod_ssl User
# Manual for more details.
#
#SSLRandomSeed startup file:/dev/random  512
#SSLRandomSeed startup file:/dev/urandom 512
#SSLRandomSeed connect file:/dev/random  512
#SSLRandomSeed connect file:/dev/urandom 512


#
# When we also provide SSL we have to listen to the
# standard HTTP port (see above) and to the HTTPS port
#
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
#          Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
#
Listen 443

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

#   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:/var/cache/httpd/ssl_scache
#SSLSessionCache                shmcb:/var/run/ssl_scache(512000)
SSLSessionCache         shmcb:/var/cache/httpd/ssl_scache(512000)
SSLSessionCacheTimeout  300

#   Semaphore:
#   Configure the path to the mutual exclusion semaphore the
#   SSL engine uses internally for inter-process synchronization.
SSLMutex  file:/var/run/httpd/ssl_mutex

##
## SSL Virtual Host Context
##

#<VirtualHost _default_:443>
<VirtualHost mail.foo.pl:443>
    DocumentRoot /usr/share/horde
    ServerName mail.foo.pl
    ServerAdmin postmaster w foo.pl
    ErrorLog /var/log/httpd/mail.foo.pl-error_log
    TransferLog /var/log/httpd/mail.foo.pl-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 /etc/httpd/ssl/mail.crt
#SSLCertificateFile /etc/httpd/ssl/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 /etc/httpd/ssl/mail.key
#SSLCertificateKeyFile /etc/httpd/ssl/server-dsa.key

#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
#   concatenation of PEM encoded CA certificates which form the
#   certificate chain for the server certificate. Alternatively
#   the referenced file can be the same as SSLCertificateFile
#   when the CA certificates are directly appended to the server
#   certificate for convinience.
#SSLCertificateChainFile /etc/httpd/ssl/ca.crt

#   Certificate Authority (CA):
#   Set the CA certificate verification path where to find CA
#   certificates for client authentication or alternatively one
#   huge file containing all of them (file must be PEM encoded)
#   Note: Inside SSLCACertificatePath you need hash symlinks
#                to point to the certificate files. Use the provided
#                Makefile to update the hash symlinks after changes.
#SSLCACertificatePath /etc/httpd/ssl
#SSLCACertificateFile /etc/httpd/ssl/ca-bundle.crt

#   Certificate Revocation Lists (CRL):
#   Set the CA revocation path where to find CA CRLs for client
#   authentication or alternatively one huge file containing all
#   of them (file must be PEM encoded)
#   Note: Inside SSLCARevocationPath you need hash symlinks
#                to point to the certificate files. Use the provided
#                Makefile to update the hash symlinks after changes.
#SSLCARevocationPath /etc/httpd/ssl
#SSLCARevocationFile /etc/httpd/ssl/ca-bundle.crl

#   Client Authentication (Type):
#   Client certificate verification type and depth.  Types are
#   none, optional, require and optional_no_ca.  Depth is a
#   number which specifies how deeply to verify the certificate
#   issuer chain before deciding the certificate is not valid.
#SSLVerifyClient require
#SSLVerifyDepth  10

#   Access Control:
#   With SSLRequire you can do per-directory access control based
#   on arbitrary complex boolean expressions containing server
#   variable checks and other lookup directives.  The syntax is a
#   mixture between C and Perl.  See the mod_ssl documentation
#   for more details.
#<Location />
#SSLRequire (   %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
#                       and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
#                       and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", 
"Dev"} \
#                       and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
#                       and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 
20       ) \
#                  or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#</Location>

#   SSL Engine Options:
#   Set various options for the SSL engine.
#   o FakeBasicAuth:
#        Translate the client X.509 into a Basic Authorisation.  This 
means that
#        the standard Auth/DBMAuth methods can be used for access 
control.  The
#        user name is the `one line' version of the client's X.509 
certificate.
#        Note that no password is obtained from the user. Every entry in 
the user
#        file needs this password: `xxj31ZMTZzkVA'.
#   o ExportCertData:
#        This exports two additional environment variables: 
SSL_CLIENT_CERT and
#        SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
#        server (always existing) and the client (only existing when client
#        authentication is used). This can be used to import the 
certificates
#        into CGI scripts.
#   o StdEnvVars:
#        This exports the standard SSL/TLS related `SSL_*' environment 
variables.
#        Per default this exportation is switched off for performance 
reasons,
#        because the extraction step is an expensive operation and is 
usually
#        useless for serving static content. So one usually enables the
#        exportation for CGI and SSI requests only.
#   o StrictRequire:
#        This denies access when "SSLRequireSSL" or "SSLRequire" applied 
even
#        under a "Satisfy any" situation, i.e. when it applies access is 
denied
#        and no other module can change it.
#   o OptRenegotiate:
#        This enables optimized SSL connection renegotiation handling 
when SSL
#        directives are used in per-directory context.
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/home/services/httpd/cgi-bin">
        SSLOptions +StdEnvVars
</Directory>

#   SSL Protocol Adjustments:
#   The safe and default but still SSL/TLS standard compliant shutdown
#   approach is that mod_ssl sends the close notify alert but doesn't 
wait for
#   the close notify alert from client. When you need a different shutdown
#   approach you can use one of the following variables:
#   o ssl-unclean-shutdown:
#        This forces an unclean shutdown when the connection is closed, 
i.e. no
#        SSL close notify alert is send or allowed to received.  This 
violates
#        the SSL/TLS standard but is needed for some brain-dead 
browsers. Use
#        this when you receive I/O errors because of the standard 
approach where
#        mod_ssl sends the close notify alert.
#   o ssl-accurate-shutdown:
#        This forces an accurate shutdown when the connection is closed, 
i.e. a
#        SSL close notify alert is send and mod_ssl waits for the close 
notify
#        alert of the client. This is 100% SSL/TLS standard compliant, 
but in
#        practice often causes hanging connections with brain-dead 
browsers. Use
#        this only for browsers where you know that their SSL implementation
#        works correctly.
#   Notice: Most problems of broken clients are also related to the HTTP
#   keep-alive facility, so you usually additionally want to disable
#   keep-alive for those clients, too. Use variable "nokeepalive" for this.
#   Similarly, one has to force some clients to use HTTP/1.0 to workaround
#   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
#   "force-response-1.0" for this.
<IfModule mod_setenvif.c>
        BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown 
downgrade-1.0 force-response-1.0
</IfModule>

#   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.
<IfModule mod_log_config.c>
        CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x 
%{SSL_CIPHER}x \"%r\" %b"
</IfModule>

</VirtualHost>

</IfModule>


i apache.conf:


# $Id: apache-httpd.conf,v 1.47 2006/01/07 23:52:27 glen Exp $
#
# This is the main Apache HTTP server configuration file.
# It contains the configuration directives that give the server its 
instructions.
#
# This config aims to be clean and readable.
# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.

ServerRoot "/etc/httpd"
DefaultType text/plain

# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
User http
Group http

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#Listen 192.168.1.1:80
Listen *:80

# 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. admin w your-domain.com
#
ServerAdmin webadmin w foo.pl

# 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 www.foo.pl:80

# Virtual Hosts:
#
NameVirtualHost foo.pl:80

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
ErrorLog logs/error_log

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Full
ServerSignature On
HostnameLookups Off

# Include other modules and packages config.
Include conf.d/*.conf

# Include webapps config
Include webapps.d/*.conf

<IfModule alias_module>
        # ScriptAlias: This controls which directories contain server 
scripts.
        # ScriptAliases are essentially the same as Aliases, except that
        # documents in the target directory are treated as applications and
        # run by the server when requested rather than as documents sent 
to the
        # client.  The same rules about trailing "/" apply to ScriptAlias
        # directives as to Alias.
        #
        ScriptAlias /cgi-bin/ "/home/services/httpd/cgi-bin/"

        <Directory "/home/services/httpd/cgi-bin">
                AllowOverride None
                Options None
                <IfModule mod_authz_host.c>
                        Order allow,deny
                        Allow from all
                </IfModule>
        </Directory>
</IfModule>


I na koniec:

[cn w host218 ~]$ rpm -qa *apache*
apache-mod_alias-2.2.3-7
apache-mod_env-2.2.3-7
apache-mod_authn_file-2.2.3-7
apache-2.2.3-7
apache-mod_userdir-2.2.3-7
apache-mod_version-2.2.3-7
apache-apxs-2.2.3-7
apache-mod_vhost_alias-2.2.3-7
htpasswd-apache-2.2.3-7
apache-mod_negotiation-2.2.3-7
apache-mod_mime_magic-2.2.3-7
apache-mod_authz_user-2.2.3-7
apache-mod_dir-2.2.3-7
apache-base-2.2.3-7
apache-mod_perl-2.0.2-13
apache-mod_include-2.2.3-7
apache-mod_cgi-2.2.3-7
apache-mod_setenvif-2.2.3-7
apache-mod_auth_basic-2.2.3-7
apache-mod_auth-2.2.3-7
apache-mod_ssl-2.2.3-7
apache-index-2.2.3-7
apache-mod_authz_host-2.2.3-7
apache-mod_speling-2.2.3-7
apache-mod_cern_meta-2.2.3-7
apache-mod_autoindex-2.2.3-7
apache-mod_php-5.1.6-8
apache-mod_mime-2.2.3-7
apache-mod_log_config-2.2.3-7
apache-mod_authz_groupfile-2.2.3-7
apache-devel-2.2.3-7
apache-mod_perl-devel-2.0.2-13
apache-errordocs-2.2.3-7
apache-mod_asis-2.2.3-7
apache-tools-2.2.3-7
apache-mod_php4-4.4.4-8


Pozdrawiam,

Czesiek


Więcej informacji o liście dyskusyjnej pld-users-pl