用于 Web 服务器的 SSL 证书生成
简介
用于 Web 服务器的 SSL 证书需要包含 SAN 信息;如果没有包含 SAN 信息,则有些客户端会提示错误: x509: cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs
。
用 keytool 生成
keytool 工具是 Java 提供的用于生成证书的工具,位于 $JAVA_HOME/bin
下。
证书生成命令:
# keytool -genkey -alias tomcat -keyalg RSA -ext SAN=IP:x.x.x.x
如果不是 IP,而是域名的话:
# keytool -genkey -alias tomcat -keyalg RSA -ext SAN=DNS:test.example.com
用 openssl 生成
参考 基于 OpenSSL 自建 CA 和颁发 SSL 证书 。 在 openssl.conf 中添加:
[SAN]
subjectAltName=@alt_names
[alt_names]
IP.1 = x.x.x.x
IP.2 = x.x.x.x
DNS.3 = xxx.xxx.xxx
DNS.4 = xxx.xxx.xxx
生成证书签署请求
# openssl req -new -key tomcat.key -out tomcat.csr -reqexts SAN
根据请求来签署证书
# openssl ca -in tomcat.csr -out tomcat.crt -extensions SAN