openssl证书添加多个IP


前文http://blog.youkuaiyun.com/linsanhua/article/details/16878817 描述了基于 OpenSSL 的 CA 建立及证书签发过程。

这里描述怎么利用subjectAltName添加ip到openssl证书。

首先创建openssl.cnf, 内容如下. 其中organizationalUnitName_default是你的组织名,commonName_default是域名,IP.1,IP.2则是想要加进来的IP列表了。

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req


[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = CN
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = SiChuan
localityName = Locality Name (eg, city)
localityName_default = ChengDu
organizationName = Organization Name (eg, company)
organizationName_default = xxxxx Ltd
organizationalUnitName  = Organizational Unit Name (eg, section)
organizationalUnitName_default  = xxxxxxx
commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_default = *.xxxx.com
commonName_max  = 64


[v3_req]
basicConstraints = CA:TRUE
subjectAltName = @alt_names

[alt_names]
IP.1 = xxx.xxx.xxx.xxx
IP.2 = xxx.xxx.xxx.xxx


下面shell步骤。

# 建立 CA 目录结构
mkdir -p ./demoCA/{private,newcerts}
touch ./demoCA/index.txt
echo 01 > ./demoCA/serial

# 生成 CA 的 RSA 密钥对
openssl genrsa -des3 -out ./demoCA/private/cakey.pem 2048


# 自签发 CA 证书

openssl req -new -x509 -days 365 -key ./demoCA/private/cakey.pem -out ./demoCA/cacert.pem -extensions v3_req -config openssl.cnf


# 查看证书内容

openssl x509 -in demoCA/cacert.pem -noout -text


### 生成支持 HTTPS 的 IP SAN 签名证书 在 Windows 环境下生成支持 HTTPS 的 IP SAN(Subject Alternative Name)签名证书的过程可以通过 OpenSSL 工具完成。以下是详细的说明: #### 配置文件准备 为了包含 IP 地址作为 SAN,需要创建一个配置文件 `extfile.cnf` 来定义扩展字段。以下是一个示例配置文件内容[^4]: ```ini [req] distinguished_name = req_distinguished_name [req_distinguished_name] [alt_names] subjectAltName = @alt_names [alt_names] IP.1 = 192.168.1.1 IP.2 = 192.168.1.2 ``` 在此配置文件中,`IP.1` 和 `IP.2` 是两个示例 IP 地址。可以根据实际需求添加更多 IP 地址。 #### 私钥生成 使用 OpenSSL 命令生成私钥文件 `private.key`: ```bash openssl genpkey -algorithm RSA -out private.key -aes256 ``` 这条命令会生成一个加密的私钥文件,并提示输入密码保护私钥[^1]。 #### 创建 CSR 文件 基于前面生成的私钥和配置文件,创建证书签名请求 (CSR) 文件 `ustack.csr`: ```bash openssl req -new -sha256 -key private.key -out ustack.csr -config extfile.cnf -extensions v3_req ``` 执行此命令时,系统会提示输入一些 DN(Distinguished Name)信息,例如国家、组织名称等。这些信息可以随意填写,但需注意保持一致性。 #### 查看 CSR 内容 验证 CSR 是否正确包含了所需的 SAN 信息: ```bash openssl req -text -noout -in ustack.csr ``` 如果一切正常,在输出中可以看到 `X509v3 Subject Alternative Name` 字段以及所设置的 IP 地址列表[^3]。 #### 自签名或 CA 签发 对于测试环境,可以直接使用自签名方法签发证书;而对于生产环境,则建议由可信的 CA 进行签发。 ##### 自签名方式 假设不依赖外部 CA 而仅做本地测试用途,可运行以下命令签发证书 `ustack.crt`: ```bash openssl x509 -req -days 365 -in ustack.csr -signkey private.key -out ustack.crt -extfile extfile.cnf -extensions v3_req ``` 这一步骤将生成有效期为一年的 X.509 证书,并自动嵌入指定的 SAN 扩展。 ##### 使用 CA 签发 如果有可用的内部 CA 或第三方 CA 提供服务,则按照标准流程提交 CSR 并获取正式认证后的公钥证书即可。具体操作参见相关文档[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值