window下为apache配置ssl证书
2015-12-24 00:16
531 查看
转载自 子非鱼 的博客稍作修改
第一步:依赖
配置Apache服务器支持https协议和SSL证书,最基本的要求是Apache包含openssl模块。还好apache/bin目录下有libeay32.dll、
openssl.exe、
ssleay32.dll,自带了ssl模块,若没有该模块,需自行下载单独的openssl。
第二步:启动模块
启动模块比较简单,打开apache的配置文件conf/httpd.conf,去掉ssl模块前面的#LoadModule ssl_module modules/mod_ssl.so ... Include conf/extra/httpd-ssl.conf
第三步:配置证书
如果你有证书了,那么会有malinlin.cn.crt
malinlin.cn.key,两个文件,在conf下建立个ssl文件夹存放证书。将原先
conf/extra/httpd-ssl.conf备份后,新建一个
httpd-ssl.conf。以下是我为蛋总配置的:
Listen 443 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLPassPhraseDialog builtin <VirtualHost *:443> DocumentRoot "c:/wamp/www" ServerName malinlin.cn:443 ServerAdmin admin@example.com ErrorLog "C:/wamp/bin/apache/apache2.2.22/logs/ssl-error.log" TransferLog "C:/wamp/bin/apache/apache2.2.22/logs/sll-access.log" SSLEngine on SSLCertificateFile "C:/wamp/bin/apache/apache2.2.22/conf/ssl/malinlin.cn.crt" SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.2.22/conf/ssl/malinlin.cn.key" SSLCertificateChainFile "C:/wamp/bin/apache/apache2.2.22/conf/ssl/malinlin.cn.crt" </VirtualHost>
如果想在原先httpd-sll.conf修改也行,记得将这三行注释掉。没有注释的话启动wamp会是失败的枯黄色。
#SSLSessionCache "dbm:D:/wamp/bin/apache/apache2.4.9/logs/ssl_scache" #SSLSessionCache "shmcb:D:/wamp/bin/apache/apache2.4.9/logs/ssl_scache(512000)" #SSLSessionCacheTimeout 300
测试
配置好后重启wamp,重启完毕后,浏览器就可以访问了。额外
如果到这已经解决你的问题了,那就没必要往下看了,下面是介绍没有证书的情况下也能体验,我们强大的openssl也是可以生成证书的,之后访问https://localhost(哎,什么域名都是ok的啦)
1、使用DOS命令进入Apache bin目录
因为该目录才有libeay32.dll、
openssl.exe、
ssleay32.dll等文件。
2、设置openssl环境变量
使用DOS命令在bin目录下执行命令:set OPENSSL_CONF=..\conf\openssl.cnf,通过此命令设置openssl的环境变量,如果不执行此命令,后面的操作会报错。set OPENSSL_CONF=..\conf\openssl.cnf
3、生成server.key
DOS下执行命令:openssl genrsa 4096 > server.key,执行了这个命令,会在bin目录下生成server.key。注释:这是使用128位的RSA算法生成的密钥,还可以使用其他的算法生成密钥,相关的用法可以使用搜索引擎搜索。4096是密钥的长度,这个值最好使用4096以上的值,必须是2的整数次方。openssl genrsa 4096 > server.key
4、生成未签署的server.csr
DOS命令下执行:openssl req -new -key server.key > server.csr,这个命令使用生成的密钥文件 server.key生成证书请求文件server.csr,执行这一命令之后,后面还要输入很多参数。openssl req -new -key server.key > server.csr Country Name (2 letter code) [AU]:CN ISO国家代码(只支持两位字符) State or Province Name (full name) [Some-State]:Hu Bei 所在省份 Locality Name (eg, city) []:Wu Han 所在城市 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mark Company 公司名称 Organizational Unit Name (eg, section) []:IT 组织名称 Common Name (e.g. server FQDN or YOUR name) []:www.phpmarker.com 申请证书的域名 Email Address []:phpmarker@163.com 管理员邮箱 Please enter the following ‘extra’ attributes to be sent with your certificate request A challenge password []: 交换密钥 可空 An optional company name []: 可空
5、签署服务器证书文件server.crt
DOS命令下执行:openssl req -x509 -days 365 -key server.key -in server.csr > server.crt,这个命令使用第三步和第四步生成的密钥和证书来生成证书server.crt,-days参数表示证书有效期,单位为天,x509表示生成的是X.509证书。openssl req -x509 -days 365 -key server.key -in server.csr > server.crt
6、查看证书详细信息
DOS下执行命令:openssl x509 -noout -text -in server.crt,这个命令可以查看证书的详细信息openssl x509 -noout -text -in server.crt
7、开始部署
执行上面所有的命令之后,在Apache的bin目录下生成了三个文件server.key、
server.csr、
server.crt。可以将其移动到专门放证书的文件夹。
修改httpd-ssl.conf,以下是我的配置:
Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog builtin
#SSLSessionCache "dbm:D:/wamp/bin/apache/apache2.4.9/logs/ssl_scache" #SSLSessionCache "shmcb:D:/wamp/bin/apache/apache2.4.9/logs/ssl_scache(512000)" #SSLSessionCacheTimeout 300
<VirtualHost _default_:443>
DocumentRoot "e:/kuaipan/code/win_www"
ServerName localhost:443
ServerAdmin admin@example.com
ErrorLog "D:/wamp/bin/apache/apache2.4.9/logs/ssl-error.log"
TransferLog "D:/wamp/bin/apache/apache2.4.9/logs/sll-access.log"
SSLEngine on
SSLCertificateFile "D:/wamp/bin/apache/apache2.4.9/conf/ssl/server.crt"
SSLCertificateKeyFile "D:/wamp/bin/apache/apache2.4.9/conf/ssl/server.key"
SSLCertificateChainFile "D:/wamp/bin/apache/apache2.4.9/conf/ssl/server.crt"
</VirtualHost>
8、重启Apache服务器
重启后浏览器访问https://localhost可用,但是https是个叉,不像上面的图是绿色的。出现这种情况,因为我们自己制作的证书,不被浏览器所信赖。我们查看证书详细情况:
相关文章推荐
- 在Mac OS上自行编译安装Apache服务器和PHP解释器
- 在Mac OS上使用mod_wsgi连接Python与Apache服务器
- 在Linux系统上部署Apache+Python+Django+MySQL环境
- Linux下将Python的Django项目部署到Apache服务器
- 使用Apache服务器mod_wsgi模式部署Django
- Apache虚拟机配置多端口站点
- repo.maven.apache.org timeout解决办法
- apache rewrite重写配置和本机域名配置,访问权限设置,伪静态实际应用
- apache2.4 的mpm配置
- Apache启动脚本的建立
- Apache Spark源码走读之4 -- DStream实时流数据处理
- Apache Spark源码走读之3 -- Task运行期之函数调用关系分析
- Apache Spark源码走读之2 -- Job的提交与运行
- 基于 Apache Mahout 构建社会化推荐引擎
- 基于 Apache Mahout 构建社会化推荐引擎
- centos6可用的Apache管理脚本
- Apache Shiro简介
- Apache的prefork模式和worker模式及其切换
- apache的虚拟域名rewrite配置以及.htaccess的使用。
- apache 加载 php7