## ## httpd.conf -- Apache HTTP server configuration file ServerType standalone ServerRoot /etc/apache-ssl LockFile /var/lock/apache-ssl.lock PidFile /var/run/apache-ssl.pid ScoreBoardFile /var/run/apache-ssl.scoreboard #ResourceConfig /etc/apache-ssl/srm.conf #AccessConfig /etc/apache-ssl/access.conf Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 MinSpareServers 5 MaxSpareServers 10 StartServers 5 MaxClients 150 MaxRequestsPerChild 100 #Listen 3000 #Listen 12.34.56.78:80 # # The default port for SSL is 443... Listen 443 # # BindAddress: You can support virtual hosts with this option. This directive # is used to tell the server which IP address to listen to. It can either # contain "*", an IP address, or a fully qualified Internet domain name. # See also the and Listen directives. # #BindAddress * Include /etc/apache-ssl/modules.conf ExtendedStatus On ### Section 2: 'Main' server configuration Port 443 User www-data Group www-data ServerAdmin webmaster@tommeetippee.com ServerName secure.tommeetippee.com # #ServerName new.host.name DocumentRoot /var/www Options SymLinksIfOwnerMatch AllowOverride None Options Indexes Includes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all UserDir public_html AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Order allow,deny Allow from all Order deny,allow Deny from all DirectoryIndex index.php index.html index.htm index.shtml index.cgi AccessFileName .htaccess Order allow,deny Deny from all #CacheNegotiatedDocs UseCanonicalName Off TypesConfig /etc/mime.types DefaultType text/plain MIMEMagicFile /usr/share/misc/file/magic.mime HostnameLookups Off ErrorLog /var/log/apache-ssl/error.log LogLevel error LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\" %T %v" full LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\" %P %T" debug LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b \"%{forensic-id}n\"" forensic LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent #CustomLog /var/log/apache-ssl/access.log common #CustomLog /var/log/apache-ssl/referer.log referer #CustomLog /var/log/apache-ssl/agent.log agent CustomLog /var/log/apache-ssl/access.log combined ForensicLog /var/log/apache-ssl/forensic.log EnableExceptionHook On # # Backtrace logs are written to error.log but optionally they can be # redirected to a different file. # # BacktraceLog /var/log/apache-ssl/backtrace.log # EnableExceptionHook On # # Whatkilledus logs are written to error.log but optionally they can be # redirected to a different file. # # WhatKilledUsLog /var/log/apache-ssl/whatkilledus.log # # # Optionally add a line containing the server version and virtual host # name to server-generated pages (error documents, FTP directory listings, # mod_status and mod_info output etc., but not CGI generated documents). # Set to "EMail" to also include a mailto: link to the ServerAdmin. # Set to one of: On | Off | EMail # ServerSignature On # # This directive controls whether Server response header field which is # sent back to clients includes a description of the generic OS-type of # the server as well as information about compiled-in modules. # Set to one of: Prod[uctOnly] | Min[imal] | OS | Full # If the directive is not specified the default is set to Full. # #ServerTokens Full # # Aliases: Add here as many aliases as you need (with no limit). The format is # Alias fakename realname # # Note that if you include a trailing / on fakename then the server will # require it to be present in the URL. So "/icons" isn't aliased in this # example, only "/icons/".. # Alias /icons/ /usr/share/apache/icons/ Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all Alias /images/ /usr/share/images/ Options MultiViews AllowOverride None Order allow,deny Allow from all # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the realname 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/ /usr/lib/cgi-bin/ # # "/usr/lib/cgi-bin" could be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all # # Redirect allows you to tell clients about documents which used to exist in # your server's namespace, but do not anymore. This allows you to tell the # clients where to look for the relocated document. # Format: Redirect old-URI new-URL # # # Directives controlling the display of server-generated directory listings. # # # FancyIndexing: whether you want fancy directory indexing or standard # IndexOptions FancyIndexing NameWidth=* # # AddIcon* directives tell the server which icon to show for different # files or filename extensions. These are only displayed for # FancyIndexed directories. # AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/deb.gif .deb AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ # # DefaultIcon: which icon to show for files which do not have an icon # explicitly set. # DefaultIcon /icons/unknown.gif # # AddDescription: allows you to place a short description after a file in # server-generated indexes. These are only displayed for FancyIndexed # directories. # Format: AddDescription "description" filename # #AddDescription "GZIP compressed document" .gz #AddDescription "tar archive" .tar #AddDescription "GZIP compressed tar archive" .tgz # # ReadmeName: the name of the README file the server will look for by # default, and append to directory listings. # # HeaderName: the name of a file which should be prepended to # directory indexes. # # The module recognize only 2 kind of mime-types, text/html and # text/*, but the only method it has to identify them is via # the filename extension. The default is to include and display # html files. # ReadmeName README.html HeaderName HEADER.html # Otherwise you can comment the 2 lines above and uncomment # the 2 below in order to display plain text files. # # ReadmeName README.txt # HeaderName HEADER.txt # # IndexIgnore: a set of filenames which directory indexing should ignore # and not include in the listing. Shell-style wildcarding is permitted. # IndexIgnore .??* *~ *# HEADER.html HEADER.txt RCS CVS *,v *,t # Uncomment the following IndexIgnore line to add README.* to the file # list that will not be displayed by mod_autoindex. # It is not enabled by default on Debian system to permit users to properly # browse Debian documentation (/doc/) # #IndexIgnore README.* # # Document types. # # AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) # uncompress information on the fly. Note: Not all browsers support # this. Despite the name similarity, the following Add* directives # have nothing to do with the FancyIndexing customization # directives above. AddEncoding x-compress Z AddEncoding x-gzip gz tgz # # AddLanguage: allows you to specify the language of a document. You can # then use content negotiation to give a browser a file in a language # it can understand. # # Note 1: The suffix does not have to be the same as the language # keyword --- those with documents in Polish (whose net-standard # language code is pl) may wish to use "AddLanguage pl .po" to # avoid the ambiguity with the common suffix for perl scripts. # # Note 2: The example entries below illustrate that in quite # some cases the two character 'Language' abbriviation is not # identical to the two character 'Country' code for its country, # E.g. 'Danmark/dk' versus 'Danish/da'. # # Note 3: There is 'work in progress' to fix this and get # the reference data for rfc3066 cleaned up. # # Danish (da) - Dutch (nl) - English (en) - Estonian (ee) # French (fr) - German (de) - Greek-Modern (el) # Italian (it) - Portugese (pt) - Luxembourgeois (lb) # Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cs) # Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja) # AddLanguage da .dk AddLanguage nl .nl AddLanguage en .en AddLanguage et .ee AddLanguage fr .fr AddLanguage de .de AddLanguage el .el AddLanguage it .it AddLanguage ja .ja AddCharset ISO-2022-JP .jis AddLanguage pl .po AddCharset ISO-8859-2 .iso-pl AddLanguage pt .pt AddLanguage pt-br .pt-br AddLanguage lb .lu AddLanguage ca .ca AddLanguage es .es AddLanguage sv .se AddLanguage cs .cz # LanguagePriority: allows you to give precedence to some languages # in case of a tie during content negotiation. # # Just list the languages in decreasing order of preference. We have # more or less alphabetized them here. You probably want to change # this. # LanguagePriority en da nl et fr de el it ja pl pt pt-br lb ca es sv # # AddType allows you to tweak mime.types without actually editing # it, or to make certain files to be certain types. # # For example, the PHP 3.x module (not part of the Apache # distribution - see http://www.php.net) will typically use: # #AddType application/x-httpd-php3 .php3 #AddType application/x-httpd-php3-source .phps # # And for PHP 4.x, use: # AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps AddType application/x-tar .tgz AddType image/bmp .bmp # hdml AddType text/x-hdml .hdml # # AddHandler allows you to map certain file extensions to "handlers", # actions unrelated to filetype. These can be either built into # the server or added with the Action command (see below). # # If you want to use server side includes, or CGI outside # ScriptAliased directories, uncomment the following lines. # # To use CGI scripts: # AddHandler cgi-script .cgi .sh .pl # # To use server-parsed HTML files mod_include has to be enabled. # AddType text/html .shtml AddHandler server-parsed .shtml # # Uncomment the following line to enable Apache's send-asis HTTP # file feature. # #AddHandler send-as-is asis # # If you wish to use server-parsed imagemap files, use # #AddHandler imap-file map # # To enable type maps, you might want to use # #AddHandler type-map var # End of document types. # Default charset to iso-8859-1 (http://www.apache.org/info/css-security/). AddDefaultCharset on # # Action: lets you define media types that will execute a script whenever # a matching file is called. This eliminates the need for repeated URL # pathnames for oft-used CGI file processors. # Format: Action media/type /cgi-script/location # Format: Action handler-name /cgi-script/location # # # MetaDir: specifies the name of the directory in which Apache can find # meta information files. These files contain additional HTTP headers # to include when sending the document # #MetaDir .web # # MetaSuffix: specifies the file name suffix for the file containing the # meta information. # #MetaSuffix .meta # # Customizable error response (Apache style) # these come in three flavors # # 1) plain text #ErrorDocument 500 "The server made a boo boo. # n.b. the (") marks it as text, it does not get output # # 2) local redirects #ErrorDocument 404 /missing.html # to redirect to local URL /missing.html #ErrorDocument 404 /cgi-bin/missing_handler.pl # N.B.: You can redirect to a script or a document using server-side-includes. # # 3) external redirects #ErrorDocument 402 http://some.other_server.com/subscription_info.html # N.B.: Many of the environment variables associated with the original # request will *not* be available to such a script. # # The following directives modify normal HTTP response behavior. # The first directive disables keepalive for Netscape 2.x and browsers that # spoof it. There are known problems with these browser implementations. # The second directive is for Microsoft Internet Explorer 4.0b2 # which has a broken HTTP/1.1 implementation and does not properly # support keepalive when it is used on 301 or 302 (redirect) responses. # BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 # # The following directive disables HTTP/1.1 responses to browsers which # are in violation of the HTTP/1.0 spec by not being able to grok a # basic 1.1 response. # BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 # If the perl module is installed, this will be enabled. Alias /perl/ /var/www/perl/ SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI # # Allow http put (such as Netscape Gold's publish feature) # Use htpasswd to generate /etc/apache-ssl/passwd. # You must unremark these two lines at the top of this file as well: #LoadModule put_module modules/mod_put.so #AddModule mod_put.c # # # Alias /upload /tmp # # # EnablePut On # AuthType Basic # AuthName Temporary # AuthUserFile /etc/apache-ssl/passwd # EnableDelete Off # umask 007 # # require valid-user # # # # Allow server status reports, with the URL of http://servername/server-status # Change the ".your_domain.com" to match your domain to enable. # # # SetHandler server-status # Order deny,allow # Deny from all # Allow from .your_domain.com # # # Allow remote server configuration reports, with the URL of # http://servername/server-info (requires that mod_info.c be loaded). # Change the ".your_domain.com" to match your domain to enable. # # # SetHandler server-info # Order deny,allow # Deny from all # Allow from .your_domain.com # # Allow access to local system documentation from localhost. # (Debian Policy assumes /usr/share/doc is "/doc/", at least from the localhost.) Alias /doc/ /usr/share/doc/ order deny,allow deny from all allow from 127.0.0.0/255.0.0.0 Options Indexes FollowSymLinks MultiViews # # There have been reports of people trying to abuse an old bug from pre-1.1 # days. This bug involved a CGI script distributed as a part of Apache. # By uncommenting these lines you can redirect these attacks to a logging # script on phf.apache.org. Or, you can record them yourself, using the script # support/phf_abuse_log.cgi. # # # Deny from all # ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi # # # Proxy Server directives. Uncomment the following lines to # enable the proxy server: # #ProxyRequests On # # Order deny,allow # Deny from all # Allow from .your_domain.com # # # Enable/disable the handling of HTTP/1.1 "Via:" headers. # ("Full" adds the server version; "Block" removes all outgoing Via: headers) # Set to one of: Off | On | Full | Block # #ProxyVia On # # To enable the cache as well, edit and uncomment the following lines: # (no cacheing without CacheRoot) # #CacheRoot "/var/cache/apache-ssl" #CacheSize 5 #CacheGcInterval 4 #CacheMaxExpire 24 #CacheLastModifiedFactor 0.1 #CacheDefaultExpire 1 #NoCache a_domain.com another_domain.edu joes.garage_sale.com # End of proxy directives. ### Section 3: Virtual Hosts # # VirtualHost: If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. # Please see the documentation at # for further details before you try to setup virtual hosts. # You may use the command line option '-S' to verify your virtual host # configuration. # # If you want to use name-based virtual hosts you need to define at # least one IP address (and port number) for them. # #NameVirtualHost 12.34.56.78:80 #NameVirtualHost 12.34.56.78 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # # # ServerAdmin webmaster@host.some_domain.com # DocumentRoot /www/docs/host.some_domain.com # ServerName host.some_domain.com # ErrorLog logs/host.some_domain.com-error.log # CustomLog logs/host.some_domain.com-access.log common # # # # ----------------------------SSL---------------------------------- # This is an example configuration file for Apache-SSL. # Copyright (C) 1995,6,7,8,9,2000,2001 Ben Laurie # Adapted to the Debian configuration by the Debian Apache Maintainers Team. # Note that all SSL options can apply to virtual hosts. # Disable SSL version 2 (you should always do this) # Debian maintainers note: this options has been disabled since it seems # to give some problems in certain setups but # should be used whenever possible. #SSLNoV2 # Disable CA list sending for testing... #SSLNoCAList # Load some randomness. # This is loaded at startup, reading at most 1024 bytes from /dev/urandom. # You may prefer to use /dev/random, but be aware that some OSes (e.g. Linux) # insist on returning all 1024 bytes, thus blocking the server until the # randomness is available. # The randomness will be _shared_ between all server instances. You can have # as many of these as you want. SSLRandomFile file /dev/urandom 1024 # And this one will be loaded before SSL is negotiated for each connection. # Again, you can have as many of these as you want, and they will all be used # at each connection. #SSLRandomFilePerConnection egd /path/to/egd/socket 1024 SSLRandomFilePerConnection file /dev/urandom 1024 # Disable SSL. Useful in combination with virtual hosts. Note that SSLEnable is # now also supported. #SSLDisable SSLEnable # Set the path for the global cache server executable. # If this facility gives you trouble, you can disable it by setting # CACHE_SESSIONS to FALSE in apache_ssl.c #SSLCacheServerPath ../src/modules/ssl/splashcache 3333@scuzzy ssl SSLCacheServerPath /usr/lib/apache-ssl/gcache # Set the global cache server port number, or path. If it is a path, a Unix # domain socket is used. If a number, a TCP socket. #SSLCacheServerPort 1234 SSLCacheServerPort /var/run/gcache_port # Directory for the cache server to run in (in case of crashes). Optional. #SSLCacheServerRunDir /tmp # Set the session cache timeout, in seconds (set to 15 for testing, use a # higher value in real life) SSLSessionCacheTimeout 15 # Set the CA certificate verification path (must be PEM encoded). # (in addition to getenv("SSL_CERT_DIR"), I think). #SSLCACertificatePath /home/ben/work/apache-ssl/apache_1.3.4-ssl/SSLconf/conf #SSLCACertificatePath /etc/apache-ssl # Set the CA certificate verification file (must be PEM encoded). # (in addition to getenv("SSL_CERT_FILE"), I think). #SSLCACertificateFile /some/where/somefile #SSLCACertificateFile /home/ben/work/apache-ssl/apache_1.3.4-ssl/SSLconf/conf/httpsd.pem # Point SSLCertificateFile at a PEM encoded certificate. SSLCertificateFile /etc/apache-ssl/secure.tommeetippee.com.crt SSLCertificateKeyFile /etc/apache-ssl/secure.tommeetippee.com.key # Set SSLVerifyClient to: # 0 if no certicate is required # 1 if the client may present a valid certificate # 2 if the client must present a valid certificate # 3 if the client may present a valid certificate but it is not required to # have a valid CA SSLVerifyClient 0 # How deeply to verify before deciding they don't have a valid certificate SSLVerifyDepth 10 # CRL Handling # N.B. Cached sessions are _not_ rechecked against the CRL, so make sure # SSLSessionCacheTimeout is set low enough. # Add this directive to check the client cert against its CRL # OpenSSL will look for the CRL in the CA path (i.e. the path set with # SSLCACertificatePath), and will expect to find a symlink from .r # to the CRL in PEM format. It is up to you to ensure an in-date CRL is # available at that location. This hash can be generated like so: # hash=`openssl crl -hash -in $file -noout` # ln -sf $file $hash.r0 SSLUseCRL # Check all certificates in the client certificate chain instead of just # the final one. SSLCRLCheckAll # Allow revoked certificates through, but set an environment variable (to YES) SSLOnRevocationSetEnv SSL_REVOKED # Allow a certificate with an expired CRL through, but set an environment # variable (to YES). Note that with this unset, the error returned is # certificate expired (TLS doesn't have an error for CRL expired! Doh!) SSLOnCRLExpirySetEnv SSL_CRL_EXPIRED # Allow a certificate with no CRL through, but set an environment variable # (to YES) SSLOnNoCRLSetEnv SSL_NO_CRL # If you have enabled client cert exports (in buff.h) you need to use # SSLExportClientCertificates to enable them. Note that the server still has to # mess about with certs even if this is disabled (and exports are enabled) # because the cert chain is received before we can know whether it is needed or # not. # Export client certificates and the certificate chain behind them to CGIs. # The certificates are base 64 encoded in the environment variables # SSL_CLIENT_CERT and SSL_CLIENT_CERT_CHAIN_n, where n runs from 1 upwards. # # SSLExportClientCertificates # # Translate the client X509 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 X509 certificate. Note that no # password is obtained from the user. Every entry in the user file needs this # password: xxj31ZMTZzkVA. See the code for further explanation. SSLFakeBasicAuth # List the ciphers that the client is permitted to negotiate. See the source # for a definitive list. For example: #SSLRequiredCiphers RC4-MD5:RC4-SHA:IDEA-CBC-MD5:DES-CBC3-SHA # These two can be used per-directory to require or ban ciphers. Note that (at # least in the current version) Apache-SSL will not attempt to renegotiate if a # cipher is banned (or not required). # You should probably at least ban the null encryption ciphers. #SSLRequireCipher #SSLBanCipher NULL-MD5:NULL-SHA # A home for miscellaneous rubbish generated by SSL. Much of it is duplicated # in the error log file. Put this somewhere where it cannot be used for symlink # attacks on a real server (i.e. somewhere where only root can write). # Don't use this anymore! Now everything is logged in the error log. #SSLLogFile /var/log/apache-ssl/ssl.log # Custom logging CustomLog /var/log/apache-ssl/ssl.log "%t %{version}c %{cipher}c %{clientcert}c" # Watch what's going on #TransferLog /var/log/apache-ssl/transfer.log # Debian maintainers note: # these are just examples on how some SSL directives might be used. # (adapted from the original httpd.conf file provided by Ben Laurie) #> # This directive forbids access except when SSL is in use. Very handy for # defending against configuration errors that expose stuff that should be # protected # SSLRequireSSL # Conversely, you can forbid SSL with... # SSLDenySSL # # # This directive disable SSL for a specific virtualhost #SSLDisable # Conversely, you can enable it with... #SSLEnable # # If you want, you can disable SSL globally, and enable it in a virtual host... #SSLDisable # # SSLEnable # # Automatically added by the post-installation script # as part of the transition to a config directory layout # similar to apache2, and that will help users to migrate # from apache to apache2 or revert back easily Include /etc/apache-ssl/conf.d