自签名SSL项目使用教程
1. 项目的目录结构及介绍
self-signed-ssl/
├── README.md
├── bin/
│ └── generate-certs.sh
├── conf/
│ ├── ca.cnf
│ ├── server.cnf
│ └── v3.ext
└── certs/
├── ca.crt
├── ca.key
├── server.crt
└── server.key
- README.md: 项目说明文件,包含项目的基本信息和使用指南。
- bin/: 存放可执行脚本文件,如
generate-certs.sh
用于生成自签名证书。 - conf/: 配置文件目录,包含CA和Server的配置文件以及扩展文件。
- certs/: 生成的证书和密钥文件存放目录。
2. 项目的启动文件介绍
bin/generate-certs.sh
该脚本用于生成自签名SSL证书和密钥。主要步骤包括:
- 使用
conf/ca.cnf
配置文件生成CA证书和密钥。 - 使用
conf/server.cnf
和conf/v3.ext
配置文件生成服务器证书和密钥。 - 将生成的证书和密钥保存到
certs/
目录中。
使用方法:
./bin/generate-certs.sh
3. 项目的配置文件介绍
conf/ca.cnf
CA证书的配置文件,包含CA的基本信息和加密参数。
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
[dn]
C = US
ST = State
L = City
O = Organization
OU = Organization Unit
CN = Example CA
conf/server.cnf
服务器证书的配置文件,包含服务器的基本信息和加密参数。
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
[dn]
C = US
ST = State
L = City
O = Organization
OU = Organization Unit
CN = localhost
conf/v3.ext
扩展文件,用于定义证书的扩展属性。
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
以上配置文件共同作用,确保生成的自签名SSL证书符合标准,并包含必要的扩展属性。