Nginx-SSL证书配置

7/25/2023 nginx证书

# nginx 证书配置

关于自定义证书生成,大家可以参考这篇博客


# HTTP server 
server {
    # http使用80端口
    listen       80;
    server_name localhost;
    
    # 把http的域名请求转成https    ex: 访问 http://www.baidu.com 时自动跳转为 https://www.baidu.com
	# return 301 https://$host$request_uri; 

    location / {
        root   html;
        index  index.html index.htm;
    }
}


# HTTPS server
server {
    # SSL使用443端口
    listen       443 ssl;
    
    # =============================================================
    # =============↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓========================
    # =============================================================
    # SSL证书绑定的域名
    server_name www.wenking.com;
    # 证书pem文件
    ssl_certificate      /home/ssl/server-cert.pem;
    # 证书key文件
    ssl_certificate_key  /home/ssl/server-key.pem;
    
    # =============================================================
    # ==================↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑========================
    # =============================================================
    
    # 启用 SSL Session 缓存
    ssl_session_cache    shared:SSL:1m;
    # 缓存SSL握手产生的参数和加密密钥的时长
    ssl_session_timeout 5m;
    # 使用的加密套件的类型
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
    # 表示使用的TLS协议的类型
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    # 加密套件优先选择服务器的加密套件
    ssl_prefer_server_ciphers on; 

    location / {
        root   html;
        index  index.html index.htm;
    }
}
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

# 验证证书有效性

通常我们使用curl访问https请求时,在tls进行会话连接时,会使用系统内置安装的证书验证服务器发送过来的证书,如果验证失败,默认是会报错的,

# 直接请求服务器,会使用系统内置的证书,结果将会报错
curl https://192.168.1.128
1
2

报错内容如下:

curl请求https自定义证书服务器报错

指定ca证书

# 指定ca证书请求服务器
curl https://192.168.1.128 --cacert ca.pem
1
2

curl请求https自定义证书服务器成功

# 跳过服务器验证

curl -k https://192.168.1.128