最近在学习SSL协议,这次是基于Apache服务器自带的openssl来实现的
TLS:传输层安全协议
SSL:安全套接字层
KEY:私钥
CSR:证书签名请求,即公钥,生成证书时需要将此提交给证书机构,生成 X509 数字证书前,一般先由用户提交证书申请文件,然后由 CA 来签发证书
CRT:即证书,一般服务器证书server.crt和客户端证书client.crt都需要通过CA证书ca.crt进行签名
1.进行CA签名获取证书时,需要注意国家、省、单位需要与CA证书相同,否则会报:
ThecountryName field needed to be the same in the CA certificate (cn) and therequest (sh)
2.进行CA签名获取证书时,如果信息完全和已有证书信息相同会报错,即不能生成相同的证书,报错信息为:
failed to update database
TXT_DB error number 2
X.509:证书格式,一般以.crt结尾
OpenSSL:SSL的一个实现,(开源)
这里需要修改两个部分的配置以及创建一些文件夹和文件:
第一:
在httpd.conf中找到下面两行去掉前面的注释 #
LoadModule ssl_modulemodules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
第二:
在httpd-ssl.conf中:
SSLCertificateFile"D:/Apache/Apache/conf/server.crt"
SSLCertificateKeyFile"D:/Apache/Apache/conf/server.key"
即生成服务器证书和私钥的路径
第三:
在bin目录下创建:
demoCA文件夹;
空白的index.txt;
serial内容为01的文件
这里解释一下为什么要创建这些文件,因为打开openssl.cnf,我们可以发现一些默认的配置:
[ CA_default ]
dir = ./demoCA #Where everything is kept
…
database = $dir/index.txt # database index file.<