達夢的數(shù)字證書的制作采用openssl工具實現(xiàn),openssl是一個開放源代碼的軟件庫包,軟件庫包大概可以分成三個主要的功能部分:SSL協(xié)議庫、應(yīng)用程序以及密碼算法庫。
一、安裝OPENSSL工具
下載openssl軟件庫包。
方法一:官網(wǎng) https://www.openssl.org/source/old/ (tar.gz 源代碼安裝法)
方法二:exe格式安裝包
http://slproweb.com/products/Win32OpenSSL.html
http://slproweb.com/download/Win64OpenSSL_Light-1_1_1q.exe
這個網(wǎng)站不是官網(wǎng),它是專門為不會源代碼方式安裝的用戶準備的,它從openssl的官網(wǎng)下載下來源代碼編譯為各個平臺的執(zhí)行碼,然后做一個界面向?qū)Х绞降陌惭b程序,方便大家界面向?qū)Х绞桨惭b。
備注:選擇一個適合Win64平臺的、exe格式可執(zhí)行程序,單機下載。如選擇輕量級的安裝文件只有3-4MB大小,基本上一分鐘以內(nèi)就下載好了。
我們采用exe格式的安裝包來安裝,因為它對初學(xué)者友好、簡單,合適windows。
雙擊運行Win64OpenSSL-3_0_5.exe文件,注意安裝路徑位置不要帶有空格或者中文字符,其他默認下一步即可
二、配置openssl.cfg文件
用記事本打開C:\OpenSSL\bin\路徑下的openssl.cfg 文件
dir:所有生成的文件存放的默認路徑
database:簽發(fā)過的證書的列表文件
new_certs_dir:存放所有新簽發(fā)的證書
serial:下一個要簽發(fā)的證書的序號,第一個從1開始
certificate:CA的證書文件的名字
private_key:CA的私鑰文件的名字
default_days:簽發(fā)證書的默認有效期,365天會經(jīng)常過期不能用了,我們手動設(shè)置為3650天。
default_bit:私鑰默認的長度大小,1024不夠安全,我們手動設(shè)置2048
另外:我們需要手動在bin下創(chuàng)建ca文件夾,ca文件夾下再創(chuàng)建newcerts、private子文件夾。ca文件夾下創(chuàng)建一個內(nèi)容為空的index.txt;創(chuàng)建一個內(nèi)容為01的serial文件;privite文件夾下創(chuàng)建一個內(nèi)容為空的.rand
三、安裝JDK
下載地址:
JDK 1.7官網(wǎng)下載地址 https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
下載后安裝在不帶空格、特殊符號、中文字符的目錄下,如:C:\JDK
四、生成CA私鑰和自簽名證書
運行cmd.exe,切換到 C:\OpenSSL\bin 目錄下,執(zhí)行以下的腳本:
set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cfg
echo %OPENSSL_CONF%
rd /s /q ca
mkdir .\ca
mkdir .\ca\newcerts
mkdir .\ca\private
copy nul ca\index.txt
set /p="01"<nul>>ca\serial
mkdir server_ssl
mkdir client_ssl
#echo 生成 ca 私鑰(ca-key.pem)和 ca 自簽名證書(ca-cert.pem),需輸入 ca 私鑰存儲密碼
openssl req -new -x509 -days 3650 -keyout ca-key.pem -out ca-cert.pem -subj /C=cn/ST=hubei/L=wuhan/O=dameng/OU=tech/CN=tech/emailAddress=fcy@demeng.com
注:最后一條命令執(zhí)行過程會要求用戶輸入長度大于等于 4 字符的 ca 私鑰存儲密碼。本例設(shè)置的密碼是changeit。生成的ca私鑰是ca-key.pem,自簽名證書是:ca-cert.pem,都
位于C:\OpenSSL\bin目錄下面。
五、生成server端私鑰和被ca簽名的server數(shù)字證書
在上述命令行程序中繼續(xù)執(zhí)行下述語句:
set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cfg
echo %OPENSSL_CONF%
#生成server私鑰 server-key.pem(無密碼)
openssl genrsa -out server-key.pem 2048
#生成server證書請求server.csr
openssl req -new -key server-key.pem -out server.csr -subj "/C=cn/ST=hubei/L=wuhan/O=dameng/OU=tech/CN=server/emailAddress=fcy@demeng.com"
#生成 server經(jīng)ca簽名的證書server-cert.pem
openssl ca -startdate 20190821235959-0700 -enddate 20290821235959-0700 -in server.csr -out server-cert.pem
#將server可信證書轉(zhuǎn)換為格式X509格式
openssl x509 -in server-cert.pem -out server.cer
copy ca-cert.pem server_ssl\
copy ca-key.pem server_ssl\
copy server.csr server_ssl\
copy server.cer server_ssl\
copy server-cert.pem server_ssl\
copy server-key.pem server_ssl\
注:執(zhí)行過程中,當(dāng)要求輸入 ca-key.pem 的存儲私鑰時,請輸入前面設(shè)置的“changeit”。
六、生成用戶私鑰和被ca簽名的用戶數(shù)字證書
此處的用戶名為 SYSDBA,若是其他用戶名只需全局替換用戶名即可。在上述命令行程序中繼續(xù)執(zhí)行下述語句:
set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cfg
echo %OPENSSL_CONF%
mkdir .\SYSDBA
#生成SYSDBA 私鑰 client-key.pem
openssl genrsa -out SYSDBA/client-key.pem 2048
#生成SYSDBA證書請求client.csr
openssl req -new -key SYSDBA/client-key.pem -out SYSDBA/client.csr -subj "/C=cn/ST=hubei/L=wuhan/O=dameng/OU=tech/CN=SYSDBA/emailAddress=SYSDBA@dameng.com"
#生成SYSDBA經(jīng)ca簽名證書client-cert.pem
openssl ca -startdate 20190821235959-0700 -enddate 20290821235959-0700 -in SYSDBA/client.csr -out SYSDBA/client-cert.pem
#將X509格式的 client-key.pem 和 client-cert.pem 合并轉(zhuǎn)換為 pkcs12 格式的文件client-pkcs.p12
#務(wù)必輸入export password為 changeit(小寫)
openssl pkcs12 -export -inkey SYSDBA/client-key.pem -in SYSDBA/client-cert.pem -out SYSDBA/client-pkcs.p12
keytool -import -alias ca -trustcacerts -file ca-cert.pem -keystore SYSDBA/.keystore -deststorepass changeit -noprompt
keytool -import -alias server -trustcacerts -file server.cer -keystore SYSDBA/.keystore -deststorepass changeit -noprompt
keytool -v -importkeystore -srckeystore SYSDBA/client-pkcs.p12 -srcstoretype PKCS12 -keystore SYSDBA/.keystore -deststorepass changeit
copy ca-cert.pem SYSDBA\
move SYSDBA client_ssl\
注:執(zhí)行過程中,當(dāng)要求輸入 ca-key.pem 的存儲私鑰時,請輸入“changeit”,當(dāng)要求輸入 pkcs.p12 的 export password 時,請務(wù)必輸入小寫的“changeit”。
若需生成多個用戶則全局替換用戶名之后,再次執(zhí)行,一個用戶名只能執(zhí)行一次,執(zhí)行兩次或以上會出現(xiàn)錯誤;最后將目錄下的server_ssl和client_ssl文件夾都拷貝到dmdbms\bin\目錄下即可使用。
七、證書信息
正常的用戶證書制作完,總共會有6個文件,且都有文件大小,如果你的證書有出現(xiàn)0kb,或者少于6個的,說明你的證書制作的有問題
正常的server端證書樣式如下:
八、上傳證書到服務(wù)器
將成功制作好的證書,上傳到數(shù)據(jù)庫上,可通過ps -ef | grep dmserver查看數(shù)據(jù)庫安裝位置,我的在/opt/dmdbms/下
找到對應(yīng)server_ssl跟client_ssl路徑,我的為/opt/dmdbms/bin/client_ssl跟server_ssl,然后將你做好的證書替換到該目錄下里頭,原數(shù)據(jù)庫默認證書記得保存一份,然后把對應(yīng)證書的權(quán)限給上,這一步很重要,權(quán)限一定要是你當(dāng)前的用戶權(quán)限
九、修改dm.ini文件
進入到你的實例目錄下,找到dm.ini文件,修改ENABLE_ENCRYPT參數(shù)為1,并設(shè)置COMM_ENCRYPT_NAME加密算法,加密算法按照用戶個人需求填寫,具體有哪些加密算法,可以參考DM安全管理手冊
十、重啟服務(wù)
重新啟動數(shù)據(jù)庫服務(wù)
十一、剝離server key
由于證書本身被加密,就會導(dǎo)致如果你是以systemctl服務(wù)啟動時候需要通過輸入密碼進行解密后加載,而后臺服務(wù)啟動缺少交互輸入導(dǎo)致啟動失敗。
生效方式有兩種:
- 前臺啟動服務(wù),會提示你輸入enter pem內(nèi)容,該密碼就是你生成證書時候的密碼
- 還是以服務(wù)方式啟動,但是需要把服務(wù)器端的key里面的key剝離掉
此處需要對server-key.pem進行密碼剝離,使其不用輸入密碼 - 重新啟動服務(wù)即可
十二、使用ssl加密方式登陸數(shù)據(jù)庫
1)disql工具
./disql SYSDBA/8ay%y2kKEe@localhost:10236#“{ssl_path=/home/dmdba/dmdbms/bin/client_ssl/SYSDBA,ssl_pwd=Hzfc_77_88_99}”
關(guān)于disql登錄疑問解答文章來源:http://www.zghlxwxcb.cn/news/detail-406437.html
2)使用客戶端manager工具
1.將生成好的client_ssl證書拷貝到你的達夢客戶端安裝目錄里(提前把client_ssl備份一份),我的客戶端目錄如下
2.啟動客戶端進行驗證
直接輸入密碼會提示SSL環(huán)境失敗,是因為當(dāng)前環(huán)境是開啟加密環(huán)境,必須配置ssl才能進入
選擇高級里面,選擇客戶端證書位置,然后輸入證書密碼
登陸后可以看到開啟ssl加密,這樣就ok拉
3.檢驗通信加密是否開啟的手段
如果還有任何問題,歡迎到達夢在線服務(wù)平臺提問
社區(qū) | 達夢在線服務(wù)平臺https://eco.dameng.com文章來源地址http://www.zghlxwxcb.cn/news/detail-406437.html
到了這里,關(guān)于達夢數(shù)據(jù)庫配置SSL通信加密的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!