Apache HTTP Server �汾2.2
�������Ľ�������Ǽ���ֱ�ӵģ�ֻ��Ϊ�˸�����������ϰ��
-- ���̿���
����SSL��HTTP��Apache���߹�ͬ��������д�����ʹ����֧��SSL��web��������ʵ������İ�ȫ��Լ��ò���ô�����ڽ�������ͨ����µĽ����������Ϊ�ҳ����շ����ĵ�һ����������Щ������ǰ����Ҫ������ȥ��⣬���˽������ƺ�����Ծ�óȻʹ�����������ˡ�
������������һ����ʹ��SSLv2Э�鼰�������㷨�ķ�������
SSLProtocol -all +SSLv2
SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
��������Ϊ��ʹ����ǿ�����������㷨��
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
������ܱ���Ϊ�Է�����Ϊ���صļ���(Server Gated Cryptography[SGC])������mod_ssl������README.GlobalID
�ĵ�������ϸ˵������˵���ǣ�������ӵ��һ��������Verisign��һ�������CA֤��ǩ���ķ��������֤���Ӷ��ڶ����������ʵ�ָ�ǿ�ȼ��ܡ���������£������ʹ�ö�������������ӣ�������������ȫ��ID���֤�������У����ں��HTTPͨѶ����֮ǰ�����������顣���ڵ������ǣ������������������������ǿ���Ե�ʹ�ø�ǿ�ȼ��ܡ����仰˵���ǣ�����������ڿ�ʼ����ʱ��ʹ�ø�ǿ�ȼ��ܣ�������������ǿ�ȼ��ܣ�����ά�ֶ��������Dz�����ġ���������ؽ����������⣺
# �����ڳ�ʼ���ֽ�ʹ�����е����룬��������������ͨ��SGC��������������
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
<Directory /usr/local/apache2/htdocs>
# �������ջ�ܾ�����û������������������
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
</Directory>
��Ȼ������ʹ�÷�����ȫ������SSLCipherSuite
��������������Ϊǿ���͡����ǣ�mod_ssl�������������Ŀ¼�������飬���Զ�����һ�����з��������õ�SSL��������Э�̡���ˣ������������ˣ�
# ��һ������µĴ����ǿ��ɵ�
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
<Location /strong/area>
# ������ //hostname/strong/area/ �������µ�����Ҫ���ǿ������
SSLCipherSuite HIGH:MEDIUM
</Location>
������˽�����û�Ⱥ��(���磺һ����յ��û���)��������һ��Intranet�У������ʹ��һ���֤����֤������Ҫ��������ֻ�ǣ����������Լ���CA֤��ǩ���Ŀͻ�֤��ca.crt
��������֤��У��ͻ���
# require a client certificate which has to be directly
# signed by our CA certificate in ca.crt
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile conf/ssl.crt/ca.crt
����Ҫ�õ�mod_ssl
�ṩ�����Ŀ¼�������ù��ܣ�
SSLVerifyClient none
SSLCACertificateFile conf/ssl.crt/ca.crt
<Location /secure/area>
SSLVerifyClient require
SSLVerifyDepth 1
</Location>
��ؼ����ڶԿͻ�֤��ĸ�����ɲ��ֽ�����֤��һ�����ָ��֤ Distinguished Name (DN) ��ȫ���֡��л���mod_auth_basic
�ͻ���SSLRequire
���͵����ַ�������֤����һ�ַ����ʺ����ڿͻ���ȫ���ڲ�ͬ���ͣ���Ϊ�����ͻ��������������ݿ�����Σ��ڶ��ַ��������ڿͻ�������һ��������д��DN�Ĺ����ּ���һ���ֵ����Σ���Ϊƥ��ͻ�������ס�
��һ�ַ�����
SSLVerifyClient none <Directory /usr/local/apache2/htdocs/secure/area> SSLVerifyClient require SSLVerifyDepth 5 SSLCACertificateFile conf/ssl.crt/ca.crt SSLCACertificatePath conf/ssl.crt SSLOptions +FakeBasicAuth SSLRequireSSL AuthName "Snake Oil Authentication" AuthType Basic AuthBasicProvider file AuthUserFile /usr/local/apache2/conf/httpd.passwd require valid-user </Directory>
/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA /C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA /C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA
�ڶ��ַ�����
SSLVerifyClient none <Directory /usr/local/apache2/htdocs/secure/area> SSLVerifyClient require SSLVerifyDepth 5 SSLCACertificateFile conf/ssl.crt/ca.crt SSLCACertificatePath conf/ssl.crt SSLOptions +FakeBasicAuth SSLRequireSSL SSLRequire %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} </Directory>
����Intranet�ͻ���IP��ַ��192.160.1.0/24��Intranetվ���������URL��/subarea
���������HTTPS��������������������(��ͬʱ������HTTPS��HTTP)��
SSLCACertificateFile conf/ssl.crt/company-ca.crt <Directory /usr/local/apache2/htdocs> # subarea���������ֻ��������Intranet�ķ��� Order deny,allow Deny from all Allow from 192.168.1.0/24 </Directory> <Directory /usr/local/apache2/htdocs/subarea> # ��subarea���ڣ�������������Intranet�ķ��ʣ� # ��������Internet�ķ��ʣ�������HTTPS+Strong-Cipher+Password # ����HTTPS+Strong-Cipher+Client-Certificate # ���ʹ����HTTPS����ȷ��ʹ�ø�ǿ�ȼ��� # ͬʱ����ͻ��Ի�����֤����ʽ��֤ SSLVerifyClient optional SSLVerifyDepth 1 SSLOptions +FakeBasicAuth +StrictRequire SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 # ǿ������Internet�Ŀͻ�ʹ��HTTPS RewriteEngine on RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$ RewriteCond %{HTTPS} !=on RewriteRule .* - [F] # ����������ʺͻ�����֤ Satisfy any # ����������� Order deny,allow Deny from all Allow 192.168.1.0/24 # HTTP������֤ AuthType basic AuthName "Protected Intranet Area" AuthBasicProvider file AuthUserFile conf/protected.passwd Require valid-user </Directory>