Apache服务器缺省并不支持SSL,但是你可以从其他地方下载安装。
1. 首先,你需要一些文件来开启SSL,你可以在http://hunter.campbus.com/找到这些包,只需要解压缩这些文件,然后将mod_ssl.so拷贝到Apache的modules目录,将文件openssl.exe拷贝到bin目录,将文件conf/ssl.conf拷贝到Apache的conf目录。
2. 使用文本编辑器打开Apache的conf目录的ssl.conf.
3. 注释掉(使用#)下面几行:
DocumentRoot "c:/apache/htdocs" ServerName www.example.com:443 ServerAdmin you@example.com ErrorLog logs/error_log TransferLog logs/access_log |
4. 此行
SSLCertificateFile conf/ssl.crt/server.crt 改为 SSLCertificateFile conf/ssl/my-server.cert 此行 SSLCertificateKeyFile conf/ssl.key/server.key 改为 SSLCertificateKeyFile conf/ssl/my-server.key 此行 SSLMutex file:logs/ssl_mutex 改为 SSLMutex default |
5. 删除下面两行:
<IfDefine SSL> |
6. 打开Apache配置文件(httpd.conf),并且去掉此行的注释
#LoadModule ssl_module modules/mod_ssl.so |
7. Openssl需要一个配置文件,你可以从http://tud.at/programm/openssl.cnf下载一个正在使用的,请注意:*.cnf类型的文件尽管是普通的文本文件,Windows对这种文件会特别处理!
8. 然后你需要创建一个SSL证书,为此打开一个命令行窗口,进入apache目录(例如C:program filesapache groupapache2),然后输入下面的命令:
binopenssl req -config binopenssl.cnf -new -out my-server.csr |
你会被讯问密语,请不要使用简单的单词,而是使用整段话,例如一段诗,越长越好。你也需要输入server的URL,其他所有问题都是可选的,但是我们建议你最好输入这些信息。
通常会自动产生privkey.pem文件,但是如果没有,请输入下面的命令生成它:
binopenssl genrsa -out privkey.pem 2048 |
然后输入这个命令
binopenssl rsa -in privkey.pem -out my-server.key |
并且输入(在同一行)
binopenssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 4000 |
这样会创建一个在4000天里过期的证书,最后输入:
binopenssl x509 -in my-server.cert -out my-server.der.crt -outform DER |
这些命令在Apache目录(my-server.der.crt、my-server.csr、my-server.key、。rnd、 privkey.pem、my-server.cert)里创建了一些文件,拷贝这些文件到目录conf/ssl(例如C:program filesapache groupapache2confssl)-如果这个目录不存在,你需要首先创建一个。
9. 重启apache服务
10. 将你的浏览器指向https://servername/svn/project ……
11 关闭不安全连接方法
你设置了SSL让你的版本库更安全,你一定希望关闭普通的非ssl访问,为此,你需要在Subversion的<Location> 增加指示:SSLRequireSSL.一个<Location>实例就像这个样子:
|
总结:
到此为止在版本控制工具Subversion在Windows Server 2003下的安装基本介绍完了,如果您希望获得更好的安全性能可以考虑使用使用Windows域认证。