win7 apache SSL模块 支持Https

环境win7

工具OpenSSL 

        httpd-2.2.22-win32-x86-openssl-0.9.8t.msi (apache官网下载,自带openssl)


SSL是一个可以保证你的通讯安全的机制,采用公钥私钥的非对加密机制,具体机制我就不说了,网上一抓一大把。
你可以使用openssl建立自己的密钥,并使用在Apache Webserver上,让你的服务器支持https。

openssl.exe和openssl.cnf放在一起。

  1. 建立你自己的服务器私钥,一个1024位的就够了
    openssl genrsa -des3 -out server.key 1024
  2. 生成CSR文件,Certificate Signing Request
    openssl req -new -key server.key -out server.csr   (或者 openssl req -new -key server.key -out server.csr -config d:\openssl.cnf )
  3. 生成证书CRT文件,X509协议
    openssl x509 -req -in server.csr -signkey server.key -out server.crt
    注意,这是一个自签名的证书
  4. 修改你apache的ssl配置,
    SSLCertificateFile "/path-to/server.crt"
    SSLCertificateKeyFile "/path-to/server.key"
  5. 启动你的apache,使用https访问试试看,是不是要你确认是否允许证书通过

如果apache仍不能启动,查看日志文件,出现

SSLPassPhraseDialog builtin is not supported on Win32 (key file D:/soft/apache/Apache2.2/conf/server.key)。

是因为 Win32平台不支持加密密钥

既然不支持加密,就把server.key的文件解密,同时注释掉httpd-ssl.conf文件中SSLPassPhraseDialog 。

解密:

1、复制server.key 为server.key.org

2、对server.key.org解密 openssl rsa -in server.key.org -out server.key s输入密码后解密成功

3、打开httpd-ssl.conf 找到SSLPassPhraseDialog  builtin 在前面加上#

好了,重新启动,成功运行,问题解决。

 

这时候,你的服务器已经支持SSL了,刚才浏览器问你是否通过你服务器提供的证书是表示客户端(浏览器)信任了你的服务器,这里也就是服务器认证。你们之间的通讯已经是加密的了。

PS:apache默认http端口号是80,https端口号是443,如果之前装了IIS这两个端口号会被占用,需要在conf\httpd.conf和conf\extra\httpd-ssl.conf中修改。

撒花~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值