SSl是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全, 可以通过apache自带的openssl进行配置:
步骤如下:
1.安装有openssl模板的apache,大多数都会有,判断有没有 只需要查看 apache\bin 下有没有 openssl.exe 运行程序;
2.配置 apache/conf/httpd.conf 文件,如下:
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
去除这两行前的#
3.配置 apache/conf/extra/httpd-ssl.conf 文件,如下:
SSLCertificateFile "conf/ssl.crt/server.crt" (服务器证书的位置)
SSLCertificateKeyFile "conf/ssl.key/server.key" (服务器私钥的位置)
#SSLCACertificateFile "c:/Apache24/conf/ssl.crt/ca-bundle.crt" (CA根证书的位置,进行客户端验证时需要)
#SSLVerifyClient require (去掉前面的‘#’号,进行客户端验证时需要)
#SSLVerifyDepth 10 (去掉前面的‘#’号,把10改为1,进行客户端验证时需要)
4.生成服务器的私钥
打开cmd命令行 进入apache/bin目录 执行 openssl genrsa -out server.key 1024 命令 在当前bin目录下生成一个 server.key 私钥文件
5.生成签署申请
在当前目录命令行下继续执行 openssl req -new -out server.csr -key server.key -config ..\conf\openssl.cnf 命令 在当前bin目录下生成一个 server.csr 签署文件
该过程将填入签署文件信息 如国家 省份 城市地区 机构组织等 值得注意的一点是:Common Name 信息必须要和是网站域名或是IP地址与httpd.conf中的serverName一致。
6.生成CA私匙文件
在当前目录命令行下继续执行 openssl genrsa -out ca.key 1024 命令 在当前bin目录下生成一个 ca.key 私钥文件
7.利用CA的私钥产生CA的自签署证书
在当前目录命令行下继续执行 openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..\conf\openssl.cnf 命令 在当前bin目录下生成一个 ca.crt 自签署证书
该过程将填入签署文件信息 如国家 省份 城市地区 机构组织等 值得注意的一点是:Common Name 信息必须要和是网站域名或是IP地址与httpd.conf中的serverName一致。(与步骤5一致)
8.CA为网站服务器签署证书
在当前目录命令行下继续执行openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf 命令 在当前bin目录下生成一个 server.crt 签署证书文件
这里执行命令时会报错,解决方法在当前文件夹下(bin目录)创建 demoCA 文件夹, 在其中创建2个文件和1个文件夹: index.txt 空文件 内容为01的无后缀名serial文件 和 newcert文件夹 即可,重新运行命令便不会有错了
9.移动文件
将生成的 server.crt,server.key,ca.crt 文件复制到 步骤3中所配置的文件夹中
10.配置httpd.conf和httpd-ssl.conf文件中的ServerName的访问域名 或 IP地址, 重启apache服务
11.打开IE,输入https://域名或IP地址:443的时候会弹出一个验证证书的地方点击取消发现没能成功,原来还要生成一个 .pfx 的证书并导入到IE中去。
在当前目录命令行下继续执行 openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx 在bin下面生成一个ca.pfx的文件,中间有个输入密码的过程,要记住这个密码。打开IE浏览器-》工具-》Internet选项-》内容-》证书,按照提示导入,这里要输入刚才生成 .pfx 过程中输入的密码。
以上内容借鉴 http://blog.csdn.net/decajes/article/details/41706739
http://www.jb51.net/article/23971.htm
本人菜鸟 有些地方不对请大神指出!