key、csr、crt、pem区别

key、csr、crt、pem区别

key:私钥

csr:提交域名供应商申请证书时的信息(用于申请证书时的配置依据)

crt:证书

pem:是个总结包含了key+crt内容

第一种.生成默认证书

  • 生成私钥KEY

  • 生成申请证书文件CSR(若需要提交域名供应商时,做证书申请时需要)

  • 生成自签证书CRT

默认证书不定义ip域名,随便用

1
2
3
4
5
6
7
8
#1.生成私钥
openssl genrsa -out server.key 2048

#2.生成证书申请文件(CSR)
openssl req -new -key server.key -out server.csr

#3.生成自签名证书(有效期3650天)
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650

第二种.生成ip证书

  • 1.生成私钥KEY

  • 2.创建 OpenSSL 配置文件

  • 3.根据配置文件生成证书

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#1.生成私钥KEY
openssl genrsa -out server.key 2048

#2.创建 ssl.conf 配置文件
echo '
[req]
prompt = no
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = v3_ca

[req_distinguished_name]
C = CN
ST = YourProvince
L = YourCity
O = YourOrganization
OU = YourDepartment
CN = 192.168.68.98  # 你的服务器IP

[v3_ca]
subjectAltName = @alt_names
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
basicConstraints = CA:FALSE

[alt_names]
IP.1 = 192.168.68.98  # 必须添加IP作为SAN
'>ssl.conf

#3.根据配置文件生成证书(有效期3650天)
openssl req -new -x509 -days 3650 -key server.key -out server.crt -config ssl.conf

#.NGINX秘钥配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
server {
    listen 443 ssl;
    server_name 192.168.68.98;  # 这里使用你的服务器IP

    # 证书配置
    ssl_certificate /etc/nginx/ssl/server.crt;  # 证书文件路径
    ssl_certificate_key /etc/nginx/ssl/server.key;  # 私钥文件路径

    # 其他可选的安全配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;

    # ntfy服务的反向代理配置假设ntfy服务运行在本地5000端口
    location / {
        proxy_pass http://localhost:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}