通常要配置 https 的服务器,都需要一个由正式的 CA 机构认证的 X509 证书。当客户端连接 https 服务器时,会通过 CA 的共钥来检查这个证书的正确性。但要获得 CA 的证书是一件很麻烦的事情,而且还要花费一定的费用。因此通常一些小的机构会是使用自签名的证书。也就是自己做 CA,给自己的服务器证书签名。
这个过程有两个主要的步骤,首先是生成自己的 CA 证书,然后再生成各个服务器的证书并为它们签名。
第一步: 生成 CA 的证书
生成CA私钥
openssl genrsa -out ca.key 2048
生成CA证书
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
第二步: 生成服务器证书
生成服务器私钥
openssl genrsa -out server.key 2048
生成服务器证书
openssl req -new -out server.csr -key server.key
第三步: 使用CA证书和私钥签署服务器证书
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 |