1 生成证书
基于unigui的使用手册,使用openssl生成需要的证书文件 root.pem key.pem cert.pem
我使用的openssl version 3.1.3
1.1 生成根证书的私钥(root.key)
openssl genrsa -out root.key 2048
1.2 生成自签名的根证书(root.pem)
openssl req -x509 -new -nodes -key root.key -sha256 -days 3650 -out root.pem
1.3 生成服务器的私钥(key.pem)
openssl genrsa -out key.pem 2048
1.4 生成证书签名请求(csr)
openssl req -new -key key.pem -out server.csr
1.5 使用根证书签名服务器的CSR生成公钥证书(cert.pem)
通过IP在内部网络直接访问,需要设置主题备用名称 创建server.ext文件
[ v3_server ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.85.131
openssl x509 -req -extfile server.ext -extensions v3_server -in server.csr -CA root.pem -CAkey root.key -CAcreateserial -out cert.pem -days 3650 -sha256
至此unigui中ssl需要的3个文件全部生成。
2 unigui配置
根据实际使用情况选择sslversions
在procedure TuniServerModule.UniGUIServerModuleCreate事件中。加载自签名的证书,或者向机构申请的证书 SSL.SSLOptions.RootCertFile := 详细路径 + '\root.pem'; SSL.SSLOptions.CertFile := 详细路径 + '\cert.pem'; SSL.SSLOptions.KeyFile := 详细路径 + '\key.pem';
3 导入自签名证书,避免浏览器告警
在windows系统添加证书,打开“运行”窗口(可以通过按下Windows键 + R
),输入certmgr.msc
,然后按Enter
键,以打开证书管理控制台。
根据root.pem 生成root.crt,根据指引将证书导入到 受信任的根证书颁发机构
openssl x509 -inform PEM -in root.pem -outform DER -out root.crt