日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jboss eap 6.2+ 版本中 加密datasource密码等敏感信息

發布時間:2024/8/24 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jboss eap 6.2+ 版本中 加密datasource密码等敏感信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

默認情況下,在jboss eap 6.2+ 管理控制臺創建datasource后,會在standalone.xml(獨立模式)或host.xml(域模式)中以明文保存相關敏感信息。

這會給服務器留下安全隱患,不過官方已經考慮到了這一點,給出了vault機制來進行加密,步驟如下:

?

1. 利用keytool生成keystore文件,參考命令如下:

keytool -genseckey -alias ctas -storetype jceks -keyalg AES -keysize 128 -storepass mypassword -keystore /Users/jimmy/vault/vault.keystore

解釋一下:keytool是jdk自帶的小工具

紅色的部分是大家要根據自身情況修改的,藍色的可改可不改。

-alias 后的ctas為別名,可以隨便改

-storepass 后的mypassword為訪問keystore文件的密碼

-keystore 后的/Users/jimmy/vault/vault.keystore為keystore文件的保存路徑,注:該文件jboss必須具有讀寫權限。

整個keystore相當于一個敏感信息的文件數據庫,可以把一些敏感信息,比如db連接密碼,ftp密碼,郵件密碼保存在這里。

藍色部分AES為加密算法,可以改成RSA之類,128為加密強度,具體可參考jboss文檔。

?

2. JBOSS_HOME/bin/vault.sh ,進入vault交互模式,會出現類似如下輸出:

==========================================

? JBoss Vault

? JBOSS_HOME: /Users/jimmy/Downloads/app/jboss-eap-6.2

? JAVA: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java

==========================================

**********************************
****? JBoss Vault? ***************
**********************************
Please enter a Digit::?? 0: Start Interactive Session? 1: Remove Interactive Session? 2: Exit

輸入0,進入交互模式。

Starting an interactive session

Enter directory to store encrypted files:/Users/jimmy/vault/ 這里輸入keystore文件所在目錄
Enter Keystore URL:/Users/jimmy/vault/vault.keystore 這里輸入keystore文件完整路徑
Enter Keystore password:? 這里輸入keystore的密碼,與剛才步驟1中的密碼要相同
Enter Keystore password again: 再次輸入密碼進行驗證
Values match
Enter 8 character salt:20150720 撒點鹽,大家根據需要修改(必須是8位字符)
Enter iteration count as a number (Eg: 44):43 加密的迭代次數(可以隨便改)
Enter Keystore Alias:cnblogs 別名,可以隨便改
這些弄完后,會輸出下面這一段:
Initializing Vault
Jul 20, 2015 11:37:09 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready
Vault Configuration in AS7 config file:
********************************************
...
</extensions>
<vault>
? <vault-option name="KEYSTORE_URL" value="/Users/jimmy/vault/vault.keystore"/>
? <vault-option name="KEYSTORE_PASSWORD" value="MASK-2W0YkkQmW8vbjUxlq79j/1"/>
? <vault-option name="KEYSTORE_ALIAS" value="cnblogs"/>
? <vault-option name="SALT" value="20150720"/>
? <vault-option name="ITERATION_COUNT" value="43"/>
? <vault-option name="ENC_FILE_DIR" value="/Users/jimmy/vault/"/>
</vault><management> ...
********************************************
Vault is initialized and ready for use
Handshake with Vault complete
Please enter a Digit::?? 0: Store a secured attribute? 1: Check whether a secured attribute exists? 2: Exit

注意:紅色部分,意思是讓你把這一段,加到standalone.xml或host.xml的相應位置。(注:建議把這一段復制出來,等會兒再加到配置文件中)

?

3. 保持剛才的交互模式,不要退出,繼續:

輸入0,準備存儲敏感信息

Task: Store a secured attribute
Please enter secured attribute value (such as password): 這里輸入要存儲的敏感信息,比如mysql的連接密碼
Please enter secured attribute value (such as password) again: 再輸入一次
Values match
Enter Vault Block:ctasDS_PWD?? 容器別名,隨便起
Enter Attribute Name:password
Secured attribute value has been stored in vault.
Please make note of the following:
********************************************
Vault Block:ctasDS_PWD
Attribute Name:password
Configuration should be done as follows:
VAULT::ctasDS_PWD::password::1
********************************************

注意紅色部分,辛苦了半天,就是要這一行,最后按2退出,同時停止jboss(如果jboss在運行的話)

?

4.修改jboss配置文件,以standalone.xml為例

??? </extensions>

??? <vault>
??????? <vault-option name="KEYSTORE_URL" value="/Users/jimmy/vault/vault.keystore"/>
??????? <vault-option name="KEYSTORE_PASSWORD" value="MASK-2W0YkkQmW8vbjUxlq79j/1"/>
??????? <vault-option name="KEYSTORE_ALIAS" value="cnblogs"/>
??????? <vault-option name="SALT" value="20150720"/>
??????? <vault-option name="ITERATION_COUNT" value="43"/>
??????? <vault-option name="ENC_FILE_DIR" value="/Users/jimmy/vault/"/>
??? </vault>

??? <management>

在</extensions>與<management>先插入第2步中剛才高亮大段標紅的內容。如果是域(domain)模式,這一段要插入到host.xml文件的<management>之前,另外域模式下,每臺slave機器的host.xml里都要做同樣的處理,keystore文件也要復制到每臺slave機器上。

然后找到testDS的位置(域模式下datasource是在master機器的domain.xml里),把密碼換成:

<datasource jta="false" jndi-name="java:/testDS" pool-name="testDS" enabled="true" use-ccm="false">
????????????????? ...
??????????????????? <security>
??????????????????????? <user-name>root</user-name>
??????????????????????? <password>${VAULT::ctasDS_PWD::password::1}</password>
??????????????????? </security>
??????????????????? ...
??????????????? </datasource>

重啟jboss,搞定。

?

轉載于:https://www.cnblogs.com/yjmyzz/p/how-to-encrypt-datasource-password-with-jboss-eap-6.html

總結

以上是生活随笔為你收集整理的jboss eap 6.2+ 版本中 加密datasource密码等敏感信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。