金笛邮件论坛  

返回   金笛邮件论坛 > 开发者乐园 > 电子邮件系统技术交流

回复
 
LinkBack 主题工具 显示模式
旧 2013-05-17, 18:15   #1 (permalink)
版主
 
注册日期: 2012-02-07
帖子: 281
默认 windows环境apache https配置宝典

安装带有ssl的apache

主要关注两个配置文件:conf\httpd.conf、conf\extra\httpd-ssl.conf
如果服务器没有域名,那么servername就填ip
比如:
ServerName 127.0.0.1:80(httpd.conf)
ServerName 127.0.0.1:443(httpd-ssl.conf)
否则输入
ServerName www.example.com:80(httpd.conf)
ServerName www.example.com:443(httpd-ssl.conf)

打开httpd.conf:
找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的‘#‘,这样就在启动时加载了ssl模块。
把Include conf/extra/httpd-ssl.conf前边的'#'去掉。

打开httpd-ssl.conf:
如下设置:
SSLMutex none
SSLCertificateFile conf/server.crt (服务器公钥)
SSLCertificateKeyFile conf/server.key (服务器私钥)
SSLCACertificateFile conf/ca.crt (CA证书位置)
DocumentRoot "xxxxx" (网页根目录位置)
SSLVerifyClient require (去掉前面的‘#’号,进行客户端验证时需要)
SSLVerifyDepth 1 (去掉前面的‘#’号,把10改为1,进行客户端验证时需要)

制作证书
去openvpn.net下载并安装openvpn。
这是一个虚拟个人网络制作工具,他能完美的在win(linux,BSD也行)下制作根、服务器、客户端证书。
安装完毕后,运行->输入cmd,从终端进到openvpn的easy-rsa目录。
输入init-config,会产生几个文件。
打开vars.bat文件,修改其中的KEY_COUNTRY(国家2位字母), KEY_PROVINCE, KEY_CITY(城市), KEY_ORG(组织), KEY_EMAIL(电子邮箱)这几个参数,免的后面制证时重复输入。
再修改这行:set HOME=E:\OpenVPN\easy-rsa设定为一个可以访问到的目录,openvpn在这个目录中生成random file(.rnd)文件。
如果再次制证就不要再次执行init-config了,否则vars.bat文件将被重新生成。

vars (将vars.bat 变量读入内存)
clean-all (清空上次制证留下的文件)

建立CA根证书
输入build-ca
Country Name (2 letter code)
State or Province Name (full name)
Locality Name (eg, city)
Organization Name (eg, company)
Organizational Unit Name (eg, section)
Common Name (eg, your name or your server's hostname) []:这个是关键,应该输入颁发根证书单位的域名,不过因为是根证书,所以怎么填都无所谓。只有服务器证书才需要认真填。
Email Address [me@myhost.mydomain]: 电子邮箱
好了,CA根证书制作完成!在keys目录下,它的名字就叫ca.crt,CA的私钥是ca.key

现在制作服务器证书:
在命令提示符下,输入
build-key-server server
你会看到和上面很相似的东西
但要注意这里的Common Name (eg, your name or your server's hostname) []:
这个才是真正的关键。这里应该输入服务器的域名比如www.example.com。
如果没有域名,就应该填ip,与httpd.conf和ssl.conf里的设置对应.
接下来看到 a challenge password []:填不填随便
an optional company name []: 填不填随便
sign the certificate? [y/n] 敲y回车。用CA根证书对服务器证书签字认证。
1 out 1 certificate requests certified,commit? [y/n] 敲y回车,确认。
好了,建好了在keys目录下的server.crt(证书)和server.key(私钥)

现在制作客户端证书:
在命令提示符下,输入
build-key-pkcs12 client1
又是一通国家省市组织等等,comman name也是随便填的。
a challenge password []:填不填随便
an optional company name []: 填不填随便
sign the certificate? [y/n] 敲y回车。用CA根证书对客户端证书签字认证。
1 out 1 certificate requests certified,commit? [y/n] 敲y回车,确认。
看到Enter export password:会要求你建立客户端证书的输出密码
verifying-Enter export password再确认一遍.
好了,建好了在keys目录下的client1.crt(客户端证书)和client1.key(私钥)和client1.p12(在浏览器导入的pkcs12格式私钥)。

把keys目录下的ca.crt和server.crt,server.key都复制到apache的conf目录下
ca.key自己保留吧,找个合适的地方储存起来.


客户端安装证书
打开internet explorer(IE),工具-internet选项-内容-证书,点选'个人'
再点击导入,把客户端证书client1.pfx导入到个人组里(别忘了扩展名是pfx)。
这里还要输入刚才建立的输出密码才能倒入。
接着,点选'受信任的根证书颁发机构',点击导入,把CA根证书ca.crt导入到受信任的根证书颁发机构里。

好啦,重新启动apache,打开IE。
在地址栏里输入https://www.example.com或者域名,弹出个窗口要选择个人的数字证书。
如果服务器证书的common name填写正确的话,你就可以直接进入网站了,看到右下角的小锁头(可靠的SSL128位)。
如果服务器证书的common name填写不正确,就会弹出个‘安全警报’框,告诉你3条:
1.安全证书由信任的站点颁发
(如果说是由不信任的站点颁发,那就是你的ca根证书ca.crt没有导入到ie的受信任的根证书颁发机构里)
2.安全证书的日期有效
(这个日期缺省是10年,可以在openvpn的easy-rsa目录下的openssl.cnf里调整修改,然后重新制作一整套证书(openssl.cnf看起来像拨
号网络的快捷方式,要用记事本,写字板打开修改))
3.“安全证书上的名称无效,或者与站点名称不匹配”
即使有安全警报,你仍能进入网站,看到右下角的小锁头(可靠的SSL128位)

我自己把httpd.conf里的listen 80都加#注释了,servername改为10.10.10.10:443,只用https不用http。

Firefox证书导入的方法大同小异,但ie中会出现“本页不但包含安全的内容,也包含不安全的内容。是否显示不安全的内容。” 的提示
原因是在网页程序中出现了http://协议的地址引用,
参考官方文档http://support.microsoft.com/kb/300443/zh-cn
工具--->Internet选项----安全---->Internet----->自定义级别(C)----->其它->“显示混合内容”处从默认的“提示”设置为“启用”即可。
Firefox不会出现这样的问题,可以正常使用。
__________________
陈彦博 
邮件事业部 技术支持工程师
北京春笛网络信息技术服务有限公司
北京海淀区知春路23号863软件园量子银座903室 100191
电话:010-82356575-6023
传真:010-82356575-6004
手机:18622575102
电邮:chenyb@mailer.com.cn
网址:www.chundi.com
QQ:1481461853 1650928809
chyb 当前离线   回复时引用此帖
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 23:03


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.