H3C的V7版本中,Web界面没有提供直接修改HTTPS证书的表单,所以需要在CLI中配置,以下以WX2510H-F为例,从创建根证书、签发子证书到最终导入AC并应用,讲解整个过程。
首先,使用OpenSSL生成私钥、签名请求和证书:
//生成根证书私钥
openssl genpkey -algorithm RSA -out root_key.pem
//生成根证书签名请求,这一步需要填写证书的详细信息(包括位置、机构等)
openssl req -new -key root_key.pem -out root_csr.pem
//签名根证书,并设定有效期10年(3650天)
openssl x509 -req -in root_csr.pem -signkey root_key.pem -out root_cert.pem -days 3650
接着,用根证书签署子证书:
//生成子证书私钥
openssl genpkey -algorithm RSA -out ac_key.pem
//生成子证书签名请求,和根证书一样,需填写相关信息
openssl req -new -key ac_key.pem -out ac_csr.pem
在签名子证书前,我们还需要创建一个.ext文件,以便在签发子证书加入额外的设定(比如是否可签发子证书、域名等):
basicConstraints=CA:FALSE
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.1.5
DNS.1 = ac.example.com
然后,用根证书签名子证书,并设定有效期10年:
openssl x509 -req -in ac_csr.pem -CA root_cert.pem -CAkey root_key.pem -out ac_cert.pem -days 3650 -extfile ac.ext
因为H3C系统对于PEM文件的读取机制,我们还需要在记事本中将ac_key.pem与ac_cert.pem两个文件的内容组合到一起,生成ac_mix.pem文件。
至此,在PC中对证书的处理就完成了。接下来需要将证书导入AC并应用与HTTPS服务。
首先,我们需要先在Web页面向AC的Flash中上传根证书公钥root_cert.pem和子证书公私钥ac_mix.pem两个文件。(在系统面板下,左侧边栏“系统”→“文件管理”,直接上传至Flash根目录即可)
接着,进入CLI页面的System-view
//配置pki domain 1,关闭证书检查
pki domain 1
undo crl check enable
//导入根证书
pki import domain 1 pem ca filename root_cert.pem
//导入子证书
pki import domain 1 pem local filename ac_mix.pem
//配置SSL服务器端策略myssl,绑定PKI域
ssl server-policy myssl
pki-domain 1
//停止HTTP和HTTPS服务
no ip http enable
no ip https enable
//绑定HTTPS的SSL服务端策略
ip https ssl-server-policy myssl
//启动HTTP和HTTPS服务
ip http enable
ip https enable
重新打开Web页面,此时证书已替换为自己签名的证书。
如果要避免浏览器显示“不安全”,还需要在Windows系统中导入我们自己的根证书,步骤如下:
搜索→管理计算机证书→受信任的根证书颁发机构→证书→操作→所有任务→导入→root_cert.pem