注意:
如果报找不到 OPENSSL.CNF文件的错误,可以到网上下一个,然后用 -config openssl.cnf来指定这个配置文件的位置,或放到报错时提示的指定位置
1.生成根证书的KEY, 1024的意思是RSA加密位数,必须为2的N次方,一般用1024即可。
openssl genrsa -out ca.key 1024
2.用刚刚生成的根证书的KEY来生成CSR(证书签发请求),这一步会要求填写请求的相关信息。
openssl req -new -key ca.key -out ca.csr
其中要注意的输入项有两个,一个Common Name(证书机构名),另一个challenge password(记住即可)
3.再用刚才的CSR和KEY来生成我们的根证书, days参数用来指定证书的有效天数。
openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt
以同样的办法生成服务器证书
1.先生成KEY
openssl genrsa -out server.key 1024
2.然后用KEY生成CSR,这一步输入信息里的Common Name必须填网站的域名
openssl req -new -key server.key -out server.csr
3.生成服务器证书
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
签发一个客户端证书,把最后生成的,后缀为P12文件给客户端安装。
1.先生成客户端的KEY
openssl genrsa -out client.key 1024
2.用KEY来生成CSR,但是这一步输入信息里的Common Name不能填上面的网站域名,因为这个是客户端的证书,如果填的和服务器证书的一样,会导致验证失败。
openssl req -new -key client.key -out client.csr
3.用最开始生成的根证书来签署生成这个客户端的证书。
openssl x509 –req –days 3650 –CA ca.crt –Cakey ca.key –Cacreateserial –in client.csr –out client.crt
4.制作客户端安装证书,这一步会要求输入一个Export Password,就是客户端安装证书时要求输入的安装密码
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
下面开始APACHE的配置。
第一步就是在Apache的配置文件里把SSL模块加载进来
LoadModule ssl_module modules/mod_ssl.so
再把SSL的配置文件也加载进来,如果没有这个配置文件的话,可以去下一个
Include conf/extra/httpd-ssl.conf
然后修改httpd-ssl.conf文件,找到如下的键值修改成对应你自己系统的路径。
DocumentRoot "E:VertrigoServwww"
#localhost改成网站的域名
ServerName localhost:443
ErrorLog "E:/VertrigoServ/Apache/logs/error.log"
TransferLog "E:/VertrigoServ/Apache/logs/access.log"
SSLEngine on
#下面的文件就是我们刚才用OPENSSL生成的,注意修改成自己的路径
SSLCertificateFile "E:/VertrigoServ/Apache/conf/server.crt"
SSLCertificateKeyFile "E:/VertrigoServ/Apache/conf/server.key"
SSLCACertificateFile "E:/VertrigoServ/Apache/conf/ca.crt"
完成后重启APACHE