SSL配置
Apache 配置文件(httpd.conf)詳解(下)2007-10-19 17:57(2) 基于IP 和多端口的虛擬主機(jī)配置Listen 172.20.30.40:80Listen 172.20.
Apache 配置文件(httpd.conf)詳解(下)
2007-10-19 17:57
(2) 基于IP 和多端口的虛擬主機(jī)配置
Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080
DocumentRoot /www/example1-80
ServerName www.example1.com
DocumentRoot /www/example1-8080
ServerName www.example1.com
DocumentRoot /www/example2-80
ServerName www.example1.org
DocumentRoot /www/example2-8080
ServerName www.example2.org
(3)單個(gè)IP 地址的服務(wù)器上基于域名的虛擬主機(jī)配置: # Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses NameVirtualHost *:80
DocumentRoot /www/example1
ServerName www.example1.com
ServerAlias example1.com. *.example1.com
# Other directives here
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here
(4)在多個(gè)IP 地址的服務(wù)器上配置基于域名的虛擬主機(jī): Listen 80
# This is the "main" server running on 172.20.30.40 ServerName server.domain.com
DocumentRoot /www/mainserver
,# This is the other address
NameVirtualHost 172.20.30.50
DocumentRoot /www/example1
ServerName www.example1.com
# Other directives here ...
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here ...
(5)在不同的端口上運(yùn)行不同的站點(diǎn)(基于多端口的服務(wù)器上配置基于域名的虛擬主機(jī)) :
Listen 80
Listen 8080
NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080
ServerName www.example1.com
DocumentRoot /www/domain-80
ServerName www.example1.com
DocumentRoot /www/domain-8080
ServerName www.example2.org
DocumentRoot /www/otherdomain-80
ServerName www.example2.org
DocumentRoot /www/otherdomain-8080
(6)基于域名和基于IP 的混合虛擬主機(jī)的配置:
Listen 80
NameVirtualHost 172.20.30.40
DocumentRoot /www/example1
ServerName www.example1.com
DocumentRoot /www/example2
,ServerName www.example2.org
DocumentRoot /www/example3
ServerName www.example3.net
SSL 加密的配置
首先在配置之前先來(lái)了解一些基本概念:
證書的概念:首先要有一個(gè)根證書,然后用根證書來(lái)簽發(fā)服務(wù)器證書和客戶證書,一般理解:服務(wù)器證書和客戶證書是平級(jí)關(guān)系。SSL 必須安裝服務(wù)器證書來(lái)認(rèn)證。 因此:在此環(huán)境中,至少必須有三個(gè)證書:根證書,服務(wù)器證書,客戶端證書。 在生成證書之前,一般會(huì)有一個(gè)私鑰,同時(shí)用私鑰生成證書請(qǐng)求,再利用證書服務(wù)器的根證來(lái)簽發(fā)證書。
SSL 所使用的證書可以自己生成,也可以通過(guò)一個(gè)商業(yè)性CA (如Verisign 或 Thawte )簽署證書。
簽發(fā)證書的問(wèn)題:如果使用的是商業(yè)證書,具體的簽署方法請(qǐng)查看相關(guān)銷售商的說(shuō)明;如果是知己簽發(fā)的證書,可以使用openssl 自帶的CA.sh 腳本工具。 如果不為單獨(dú)的客戶端簽發(fā)證書,客戶端證書可以不用生成,客戶端與服務(wù)器端使用相同的證書。
(1) conf/ssl.conf 配置文件中的主要參數(shù)配置如下:
Listen 443
SSLPassPhraseDialog buildin
#SSLPassPhraseDialog exec:/path/to/program
SSLSessionCache dbm:/usr/local/apache2/logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache2/logs/ssl_mutex
# General setup for the virtual host
DocumentRoot "/usr/local/apache2/htdocs"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log
SSLEngine on
SSLCipherSuite
ALL:!ADH:!EXPORT56:RC4 RSA: HIGH: MEDIUM: LOW: SSLv2: EXP: eNULL SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key CustomLog /usr/local/apache2/logs/ssl_request_log
"t h {SSL_PROTOCOL}x {SSL_CIPHER}x "r" b"
,(2) 創(chuàng)建和使用自簽署的證書:
a.Create a RSA private key for your Apache server
/usr/local/openssl/bin/openssl genrsa -des3 -out
/usr/local/apache2/conf/ssl.key/server.key 1024
b. Create a Certificate Signing Request (CSR)
/usr/local/openssl/bin/openssl req -new -key
/usr/local/apache2/conf/ssl.key/server.key -out
/usr/local/apache2/conf/ssl.key/server.csr
c. Create a self-signed CA Certificate (X509 structure) with the RSA key of the CA
/usr/local/openssl/bin/openssl req -x509 -days 365 -key
/usr/local/apache2/conf/ssl.key/server.key -in
/usr/local/apache2/conf/ssl.key/server.csr -out
/usr/local/apache2/conf/ssl.crt/server.crt
/usr/local/openssl/bin/openssl genrsa 1024 -out server.key
/usr/local/openssl/bin/openssl req -new -key server.key -out server.csr /usr/local/openssl/bin/openssl req -x509 -days 365 -key server.key -in server.csr -out server.crt
(3) 創(chuàng)建自己的CA (認(rèn)證證書),并使用該CA 來(lái)簽署服務(wù)器的證書。 mkdir /CA
cd /CA
cp openssl-0.9.7g/apps/CA.sh /CA
./CA.sh -newca
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.csr newreq.pem
./CA.sh -sign
cp newcert.pem /usr/local/apache2/conf/ssl.crt/server.crt
cp server.key /usr/local/apache2/conf/ssl.key/