说明
x509.3证书格式
- 证书格式的版本号
- 证书序列号
- 证书签名算法
- 证书颁发者
- 有效期
- 持有者的名称
- 持有者的公钥
- CA的ID
- 持有者的ID
- 其他扩展信息
- 基本约束
- 证书策略
- 密钥的使用限制
- CA签名
SSL握手要完成的工作
SSL会话基于 IP 地址进行,不支持在基于主机名的虚拟主机上实现
- 交换协议版本号
- 选择一个双方都支持的加密方式
- 对两端实现身份验证
- 密钥交换
客户端验证服务器端证书
- 日期检查:证书是否在有效期内
- 证书颁发者的可信度
- 证书的签名检测
- 持有者的身份检测
配置私有CA服务器
修改ca默认项配置
1 | vim /etc/pki/tls/openssl.cnf |
1 | [ req_distinguished_name ] |
创建私有 CA
1 | cd /etc/pki/CA/ |
https 的实现
安装 mod_ssl 模块,httpd 基于 mod_ssl 模块实现对 ssl 的支持
1 | yum -y install mod_ssl |
创建目录,存放密钥文件和证书请求文件、证书
1 | mkdir -pv /etc/httpd/conf/ssl |
生成私钥
1 | cd /etc/httpd/conf/ssl |
web server 生成证书申请
1 | cd /etc/httpd/conf/ssl |
CA证书签署
1 | openssl ca -in httpd.csr -out httpd.crt -days 3655 |
修改httpd的ssl配置
1 | vim /etc/httpd/conf.d/ssl.conf |
1 | DocumentRoot "/var/www/html" |
配置检查并重启服务
1 | httpd -t |
导入 CA 证书测试,证书路径:/etc/pki/CA/cacert.pem
- Windows 测试:拷贝证书至 Windows 环境,后缀名改为 crt 导入即可
- Linux 测试:
openssl s_client -connet:验证的地址:端口 -CAfile:CA证书的路径
1 | openssl s_client -connect www.test.com:443 -CAfile /etc/pki/CA/cacert.pem |