通常要配置 https 的服务器,都需要一个由正式的 CA 机构认证的 X509 证书。当客户端连接 https 服务器时,会通过 CA 的共钥来检查这个证书的正确性。但要获得 CA 的证书是一件很麻烦的事情,而且还要花费一定的费用。因此通常一些小的机构会是使用自签名的证书。也就是自己做 CA,给自己的服务器证书签名。
这个过程有两个主要的步骤,首先是生成自己的 CA 证书,然后再生成各个服务器的证书并为它们签名。

第一步: 生成 CA 的证书

  • 生成CA私钥

    1. openssl genrsa -out ca.key 2048
  • 生成CA证书

    1. openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

    第二步: 生成服务器证书

  • 生成服务器私钥

    1. openssl genrsa -out server.key 2048
  • 生成服务器证书

    1. openssl req -new -out server.csr -key server.key

    第三步: 使用CA证书和私钥签署服务器证书

    1. openssl x509 -req -in server.csr -out server.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
字段 字段含义 示例
/C= Country 国家 CN
/ST= State or Province 省 Beijing
/L= Location or City 城市 Beijing
/O= Organization 组织或企业 Ypw
/OU= Organization Unit 部门 Ypw
/CN= Common Name 域名或IP ypw.com