参考资料:http://www.yuansir-web.com/2011/05/12/hello-world/
测试环境:windows2003 32位 + Apache2.4 + PHP5.4

一、准备工作
安装好 Apache + openssl
win32openssl 下载地址 http://slproweb.com/products/Win32OpenSSL.html,最好下载完整包(或者可以自己编译openssl)
VC++ 2008安装

二、生成CA证书

首先cmd命令进入{Apache}/bin目录下
1、成网站服务器公钥文件server.key
openssl genrsa -out server.key 1024

2、生成server.csr
openssl req -new -out server.csr -key server.key -config ..\conf\openssl.cnf
(此处的openssl.cnf在windows下显示的是openssl 类型为快速拨号)

3、生成CA私钥文件ca.key
openssl genrsa -out ca.key 1024

4、生成CA证书
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..\conf\openssl.cnf

三、生成服务端证书

在{Apache}/bin文件下面创建demoCA文件夹,并在demoCA文件夹里面创建newcerts文件夹、index.txt文件、serial文件,serial文件内容为01。

1、签名以后的服务器证书
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf

2、把server.crt,server.key,ca.crt文件复制到{Apache}/conf文件夹下面

四、生成客户端证书

1、创建客户端私钥
openssl genrsa -aes256 -passout pass:pldsec -out D:/Wamp/private/client.key.pem 2048

2、创建客户端证书签发请求
openssl req -passin pass:pldsec -new -key D:/Wamp/private/client.key.pem -out D:/Wamp/private/client.csr -subj '/C=CN/ST=SZ/L=SZ/O=pldsec/OU=pldsec/CN=192.168.1.203' -config D:/Wamp/Apache24/conf/openssl.cnf

3、利用CA根证书,签发客户端证书
openssl x509 -req -days 3650 -CA D:/Wamp/Apache24/conf/ca.crt -CAkey D:/Wamp/Apache24/bin/ca.key -CAcreateserial -in D:/Wamp/private/client.csr -out D:/Wamp/certificates/client.crt

4、将client.crt转换为 .pfx 格式的证书
openssl pkcs12 -export -clcerts -inkey D:/Wamp/private/client.key.pem -in D:/Wamp/certificates/client.crt -out D:/Wamp/certificates/client.p12 -passin pass:pldsec -passout pass:pldsec

五、在httpd中配置双向的HTTPS
1、编辑 httpd.conf,分别查找下面2行代码,并去掉前面的#,(这里的前提是,在编译httpd的时候,已经编译了ssl模块)
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule socache_dbm_module modules/mod_socache_dbm.so
LoadModule socache_memcache_module modules/mod_socache_memcache.so
LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

2、编辑{Apache}/conf/extra/httpd-ssl.conf
SSLEngine on
SSLCertificateFile "d:/Wamp/Apache24/conf/server.crt"
SSLCertificateKeyFile "d:/Wamp/Apache24/conf/server.key"
SSLCACertificateFile "D:/Wamp/Apache24/conf/ca.crt"
SSLVerifyClient require
SSLVerifyDepth 10
前3个开启是单向的HTTPS认证,后面3个开启是双向的HTTPS认证

Windows下Apache添加SSL模块的更多相关文章

  1. windows下Apache配置SSL安全连接

    什么是SSL? SSL(Secure Socket Layer): 是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全.Open SSL下载地址:http://www ...

  2. mac下Apache添加限速模块mod_bw

    官方文档: Apache2 - Mod_bw v0.7 Author : Ivan Barrera A. (Bruce) HomePage : Http://Ivn.cl/apache & h ...

  3. windows下apache配置ssl(https)服务器

    SSl是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全, 可以通过apache自带的openssl进行配置: 步骤如下: 1.安装有openssl模板的apache ...

  4. windows下apache利用SSL来配置https

    第一步打开httpd.conf文件找到以下两个变量把注释去掉. #LoadModule ssl_module modules/mod_ssl.so (去掉前面的#号) #Include conf/ex ...

  5. (原)Mac下Apache添加限制IP线程模块:mod_limitipconn.so

    1.下载:http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2 解压到一个目录:我的是~/Download/mod_limitipcon ...

  6. Windows下Apache应用环境塔建安全设置(目录权限设置)

    目的:为Apache,php配置受限制的用户权限.保护系统安全.需要的朋友可以参考下. 环境配置情况: apache安装目录:d:\www-s\apache php目录:d:\www-s\php5 m ...

  7. windows下apache + mod_wsgi + python部署flask接口服务

    windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...

  8. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  9. windows下 apache 二级域名相关配置

    小编今天给大家总结下 windows 下 apache的二级域名的相关配置 利用.htaccess将域名绑定到子目录 下面就利用本地127.0.0.1进行测试 我们这里以 www.jobs.com 为 ...

随机推荐

  1. jdbc hibernate myBatis比较

    jdbc hibernate myBatis比较 jdbc 优点:性能高,易掌握 缺点:代码繁琐 hibernate 优点:不用写sql,代码简洁 缺点:性能不好 自动生成的sql效率低下(复杂业务) ...

  2. SVG图案

    前面的话 给SVG元素应用填充和描边,除了使用纯色和渐变外,还可以使用图案.本文将详细介绍SVG图案 概述 <pattern>可以实现重复的效果,在canvas中被翻译为模式,而在SVG中 ...

  3. javascript学习笔记-2:jQuery中$("xx")返回值探究

    最近在写一个jQuery插件的时候,需要用到一个条件: 一组img标签,每一个元素都需要被它前面的元素值src替换,如果是第一个(序列为0)则其值为最后一个元素值,如果是最后一个,那么其值为第一个元素 ...

  4. [js高手之路]深入浅出webpack教程系列4-插件使用之html-webpack-plugin配置(上)

    还记得我们上文中的index.html文件吗? 那里面的script标签还是写死的index.bundle.js文件,那么怎么把他们变成动态的index.html文件,这个动态生成的index.htm ...

  5. bugly cocos 接入和 符号表使用

    bugly cocos 接入和 符号表使用 在bugly网站下载 BuglyCocosPlugin 的sdk ios 1. 在 项目的 classes 里面新建 文件夹  BuglyCocosPlug ...

  6. 【转】Spring AOP 实现之CGLIB

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp91    cglib(Code Generation Library)是 ...

  7. Mysql介绍和实践总结

    本文首先介绍mysql的安装和基本使用.进阶操作.讲解mysql的导入导出和自动备份,然后介绍安全模式修改密码和mysql的全文本搜索功能,最后记录了个人使用mysql中遇到的问题集. 开始安装: s ...

  8. Sersync+Rsync实现触发式文件同步

    背景 通常我们在服务器上使用rsync加上crontab来定时地完成一些同步.备份文件的任务.随着业务和应用需求的不断扩大.实时性要求越来越高.一般rsync是通过校验所有文件后,进行差量同步,如果文 ...

  9. 团队作业4——第一次项目冲刺(Alpha版本)4.22

    团队作业4--第一次项目冲刺(Alpha版本) Day one: 会议照片 由于团队中的组员今天不在学校,所以我们的站立会议提前一天展开. 项目进展 由于今天是Alpha版本项目冲刺的第一天,所以没有 ...

  10. PHP连接数据_insert_id介绍

    对于自增长的主键列不好取值的情况,php提供了一个变量来取值,insert_id $db = new MySQLi("localhost","root",&qu ...