zoukankan      html  css  js  c++  java
  • Windows下Apache添加SSL模块

    参考资料: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 ..confopenssl.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 ..confopenssl.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 ..confopenssl.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认证

  • 相关阅读:
    jQuery的核心对象、原型对象、静态方法、动态方法
    请写出css中选择器(元素选择器、类选择器、id选择器)的优先级顺序,和当各种选择器组合时,优先级的计算规则是什么?
    css3中的box-sizing常用的属性有哪些?分别有什么作用?
    不同域的页面如何通信(跨域)
    浮动与定位
    获取DOM元素的方式有哪些
    简要说明盒子模型和flex布局
    牛逼哄哄的对象深复制
    欧拉函数
    P2659 美丽的序列
  • 原文地址:https://www.cnblogs.com/rnckty/p/4097458.html
Copyright © 2011-2022 走看看