openssl证书生成

openssl证书生成

1. 生成普通证书

$ openssl genrsa -out server.key 2048
# server.grpc.io为服务别名 
$ openssl req -new -x509 -days 3650 -subj "/C=GB/L=China/O=grcp-server/CN=server.grpc.io" -key server.key -out server.crt
$ openssl genrsa -out client.key 2048
$ openssl req -new -x509 -days 3650 -subj "/C=GB/L=China/O=grpc-client/CN=client.grpc.io" -key client.key -out client.crt

2. 生成CA证书

$ openssl genrsa -out ca.key 2048
$ openssl req -new -x509 -days 3650 -subj "/C=GB/L=China/O=gobook/CN=github.com" -key ca.key -out ca.crt

3. 生成CA证书后对服务器端证书进行签名

$ openssl req -new -subj "/C=GB/L=China/O=server/CN=server.io" -key server.key -out server.csr
$ openssl x509 -req -sha256 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -in server.csr -out server.crt

4. 用CA证书对客户端证书签名:

$ openssl req -new -subj "/C=GB/L=China/O=client/CN=client.io" -key client.key -out client.csr 
$ openssl x509 -req -sha256 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -in client.csr -out client.crt

5. golang服务端CA认证

certificate, err := tls.LoadX509KeyPair("server.crt", "server.key")
if err!=nil{
    log.Fatal(err)
}
certPool := x509.NewCertPool()
ca, err := ioutil.ReadFile("ca.crt")
if err!=nil{
    log.Fatal(err)
}
if ok := certPool.AppendCertsFromPEM(ca); !ok {
    log.Fatal("failed to append certs")
}
creds := credentials.NewTLS(&tls.Config{
    Certificates: []tls.Certificate{certificate},
    ClientAuth: tls.RequireAndVerifyClientCert,
    ClientCAs: certPool,
})

6. golang客户端CA认证

certificate, err := tls.LoadX509KeyPair("client.crt", "client.key")
if err!=nil{
    log.Fatal(err)
}
certPool := x509.NewCertPool()
ca, err := ioutil.ReadFile("ca.crt")
if err!=nil{
    log.Fatal(err)
}
if ok := certPool.AppendCertsFromPEM(ca); !ok{
    log.Fatal("failed to append ca certs")
}
creds := credentials.NewTLS(&tls.Config{
    Certificates: []tls.Certificate{certificate},
    ServerName: "server.io",
    RootCAs: certPool,
})
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: OpenSSL是一个开源的加密工具集,可以用于生成证书和密钥。使用OpenSSL一键生成证书,可以简化证书生成过程,提高效率。 首先,确保已经在计算机上安装了OpenSSL工具集。打开命令行界面,在命令行中输入以下命令即可生成证书: 1. 生成私钥:openssl genrsa -out private.key 2048 这条命令将生成一个2048位的RSA私钥,并将其保存到private.key文件中。 2. 生成证书请求:openssl req -new -key private.key -out request.csr 这条命令将使用上一步生成的私钥,生成一个证书请求文件request.csr。 3. 生成自签名证书openssl x509 -req -days 365 -in request.csr -signkey private.key -out certificate.crt 这条命令将使用证书请求文件request.csr和私钥private.key,生成一个有效期为365天的自签名证书certificate.crt。 通过上述三个步骤,就可以使用OpenSSL一键生成证书了。私钥用于加密和解密数据,证书请求用于向证书颁发机构申请证书,自签名证书则可以用于测试环境、内部使用等场景。 值得注意的是,自签名证书在公共互联网环境下可能无法被广泛信任,如果需要在生产环境中使用,建议向受信任的证书颁发机构申请真实有效的证书。 ### 回答2: openssl是一个开源的加密工具包,可以用于生成、颁发和管理证书。下面是使用openssl一键生成证书的步骤: 1. 首先,需要在计算机上安装openssl工具包。可以从openssl的官方网站或其他可信的资源获取,并按照指示进行安装。 2. 打开命令行界面,进入openssl的安装目录。 3. 使用以下命令来生成私钥文件和证书请求文件: openssl req -newkey rsa:2048 -nodes -keyout private.key -out request.csr 解释: -newkey rsa:2048:生成RSA私钥,长度为2048位。 -nodes:私钥不加密。 -keyout private.key:指定私钥文件名为private.key。 -out request.csr:指定证书请求文件名为request.csr。 4. 执行上述命令后,会提示输入一些信息,如国家/地区代码、组织名称、通用名称等。根据实际需求,依次输入这些信息。 5. 生成私钥文件和证书请求文件后,可以将证书请求文件(request.csr)发送给证书颁发机构(CA)进行签名。CA会验证请求并颁发相应的证书。 通过上述简单步骤,就可以使用openssl一键生成证书。但需要注意的是,生成证书请求文件需要由CA签名后才能得到有效的证书
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值