[TOC]
本文探索nginx如何支持https请求,后续内容会分为以下部分讲解
- https服务器的配置
- 自建https server
- https原理,交互流程
- nginx https处理方法
https原理,交互流程
自建https服务器
CA服务器
首先我们需要自建一个CA认证机构
openssl
首先确认已正确安装openssl,以及openssl版本
如果版本低于1.0.1f,建议升级,因为1.0.1f版本之下的OpenSSL有一个Heartbleed漏洞。
创建CA
创建文件夹保存CA信息1
cd && mkdir -p myCA/signedcerts && mkdir myCA/private && cd myCA
myCA 用于存放 CA 根证书,证书数据库,以及后续服务器生成的证书,密钥以及请求
signedcerts:保存签名证书的 copy
private: 包含私钥
配置CA相关参数,在CA目录运行1
echo '01'>serial && touh index.txt
创建caconfig.cnf文件1
vim ~/myCA/caconfig.cnf
1 | My sample caconfig.cnf file. |
生成CA证书1
2export OPENSSL_CONF=~/myCA/caconfig.cnf #该命令用于给环境变量 OPENSSL_CONF 赋值为caconfig.cnf。
openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 1825 # 生成 CA 根证书和密钥
该命令需要用户设置密码。不要忘记。
以上步骤生成了 CA 自签名根证书,和 RSA 公/私密钥对。证书的格式是 PEM,有效期是1825天。
- myCA/cacert.pem: CA 根证书
- myCA/private/cakey.pem: CA 私钥