天天看点

数字证书的生成和签发

数字证书的生成和签发

  • 生成服务器端的私钥
    openssl genrsa -des3 -out server.key 1024
               

    注意:

    执行上面的命令会提示输入密码,用于加密私钥文件。可以使用下面的命令去除掉私钥文件的密码保护:

    openssl rsa -in server.key -out server.key
               
  • 生成服务端 CSR(Certificate Signing Request)
    openssl req -new -key server.key -out server.csr -config openssl.cnf
               
  • 生成客户端私钥和 CSR
    openssl genrsa -des3 -out client.key 1024
    openssl req -new -key client.key -out client.csr -config openssl.cnf
               
  • 生成 CA 证书
    CSR 文件经过 CA 签名后生成证书,可以将我们的 CSR 文件发送到可信的 CA 机构进行验证,但大多情况下需要支付费用。通过下面的方法可以生成自己的 CA 证书。
    openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
               
  • CA 签名
    Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
    Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cn\f
               
  • 合并证书和私钥文件

    通过上面的过程,可以得到 ca.crt、client.crt、client.key、ca.crt、server.crt、server.key 这几个文件,可以将 .crt 和 .key 合并到一个 .pem 文件:

    cat client.crt client.key > client.pem
    cat server.crt server.key > server.pem
               
  • 生成 PKCS12 格式证书
    openssl pkcs12 -export -inkey client.key -in client.crt -out client.p12
               

继续阅读