OpenSSL安全证书的生成步骤:
这是国产数据库-达梦数据库-安全证书的生成过程。达梦数据库V7采用基于SSL的安全加密通信。
0.准备工作
安装openssl
在bin目录下建立ca文件夹
ca文件夹下建立newcerts,private文件夹
建立index.txt和serial文件,serial文件中深入内容01
更改配置文件dir = ./demoCA 为dir = ./CA
certificate = $dir/cacert.pem 为certificate = $dir/ca-cert.pem
private_key = $dir/private/cakey.pem为private_key = $dir/private/ca-key.pem
设置环境变量OPENSSL_CONF为C:\OpenSSL\bin\openssl.cfg
进入openssl命令提示后
1.创建根密钥和证书请求
req -new -x509 -keyout ca/private/cakey.pem -out ca/ca-cert.pem -config openssl.cfg
2.创建服务器和客户端密钥
genrsa -out server-key.pem 1024
genrsa -out client-key.pem 1024
3.创建服务器和客户端的证书请求
req -new -key server-key.pem -out server.csr -config openssl.cfg
req -new -key client-key.pem -out client.csr -config openssl.cfg
4.证书签名
ca -in server.csr -out server-cert.pem -cert ca/ca-cert.pem -keyfile ca/private/ca-key.pem -config openssl.cfg
ca -in client.csr -out client-cert.pem -cert ca/ca-cert.pem -keyfile ca/private/ca-key.pem -config openssl.cfg
5.证书签名如果遇到下面的问题,可以清空index.txt文件内容后正常生成
Certificate is to be certified until Oct 16 05:51:39 2021 GMT (3650 days)
Sign the certificate? [y/n]:y
failed to update database
TXT_DB error number 2
6.证书签名如果遇到省份城市等不匹配时,可以修改openssl.cfg文件中的配置
# For the CA policy
[ policy_match ]
countryName = match
stateOrProvinceName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
---------------------------------------------------------------------------------------------------------------------------
生成java的keystore,使用jdk提供的keytool工具, 最后生成的文件为.keystore
1.建立.keystore文件,需要填写证书信息,注意第一项是用户名,需要和达梦数据库用户名“SYSDBA”一致
keytool -genkey -keyalg RSA -alias client -keystore .keystore -storepass changeit -storetype jks
您的名字与姓氏是什么?
[Unknown]: SYSDBA
您的组织单位名称是什么?
[Unknown]: DAMENG
您的组织名称是什么?
[Unknown]: HUST
您所在的城市或区域名称是什么?
[Unknown]: WUHAN
您所在的州或省份名称是什么?
[Unknown]: HUBEI
该单位的两字母国家代码是什么
[Unknown]: CN
N=SYSDBA, OU=DAMENG, O=HUST, L=WUHAN, ST=HUBEI, C=CN 正确吗?
[否]: 是
输入<client>的主密码
(如果和 keystore 密码相同,按回车):
2. 得到证书请求文件client.csr
keytool -certreq -alias client -keyalg RSA -file client.csr -keystore .keystore
3. CA签署证书,生成 client.pem
openssl ca -keyfile ca/private/ca-key.pem -cert ca/ca-cert.pem -in client.csr -out client.pem -config openssl.cfg
4. 转换client.pem格式,生成 client.cer
openssl x509 -in client.pem -out client.cer
5. 导入CA证书到keystore
keytool -import -alias ca -trustcacerts -file ca-cert.pem -keystore .keystore
6. 导入用户的证书 client.cer到keystore
keytool -import -alias client -trustcacerts -file client.cer -keystore .keystore