使用openssl自制ssl证书

首先在官网下载安装openssl客户端,链接:https://www.openssl.org/source/old/,一般linux系统自带openssl。

1、 生成私钥

openssl genrsa -des3 -out server.pass.key 2048
  • genra 生成RSA私钥
  • -des3 des3算法,不添加默认rsa
  • -out server.key 生成的私钥文件名
  • 2048 私钥长度

备注:需输入一个4位以上的密码

2、去掉私钥密码

openssl rsa -in server.pass.key -out server.key

3、生成CSR文件(用于请求证书签名)

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Shanghai/L=Shanghai/O=xdevops/OU=xdevops/CN=域名.cn"
  • req 生成证书签名请求
  • -new 新生成
  • -key 私钥文件
  • -out 生成的CSR文件
  • -subj 生成CSR证书的参数

subj参数说明如下:

字段 字段含义 示例
/C= Country 国家 CN
/ST= State or Province 省 Guangdong
/L= Location or City 城市 Guangzhou
/O= Organization 组织或企业 xdevops
/OU= Organization Unit 部门 xdevops
/CN= Common Name 域名或IP gitlab.xdevops.cn

4、生成自签名SSL证书

# -days 证书有效期
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  • X.509证书包含三个文件:key,csr,crt。
    key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
    csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
    crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
    备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。

5、生成的文件如下图所示

img

以上,就成功制作了ssl证书。

具体如何使用根据自己的需求来定,下面的配置并不通用。
最后在nginx中config文件配置如下。

server {
    listen              443 ssl;
    server_name         www.xxx.com;  //域名

    ssl_certificate_key ssl\server.key;  //引入生成的key
    ssl_certificate ssl\server.crt;  //引入生成的crt证书文件
    
    #client_max_body_size   50m;

    location / {
        try_files $uri @local;
        error_page  403 = @local;
    }

    location @local {
        proxy_next_upstream timeout invalid_header http_502 http_503 http_504;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Connection "";
        proxy_http_version 1.1;
        proxy_pass http://127.0.0.1:4400;
        proxy_redirect default;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location @remote {
        proxy_next_upstream timeout invalid_header http_502 http_503 http_504;
        proxy_set_header Host www.xxx.com;  //域名
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Connection "";
        proxy_http_version 1.1;
        proxy_pass https://xx.xxx.xxx.xxx;  //公网ip地址(可能需要添加端口号)
        proxy_redirect default;

    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值