在 z/OS 上將金鑰儲存庫轉換成 CMS 格式
您可以在 z/OS 系統上設定 Liberty 群體的動態遞送。該作業的一個元素是將金鑰儲存庫轉換為 CMS 格式。
提供的範例 Script 示範如何設定 ikeycmd 的 CMS 提供者。您的環境可能不同。您必須確保找出 CMS 提供者,並指定正確的提供者偏移。
在設定 Liberty 群體的動態遞送的步驟 5 中,必須針對 z/OS 執行那兩個 gskcmd 指令,而且要改用 ikeycmd 而不是 gskcmd。 如範例 Script 中所示,ikeycmd 指令必須包含額外的 -Djava.security.properties,在 CMS 提供者後面附加適當的提供者偏移。 在每一個指令中,-Djava.security.properties 參數必須在為 Liberty 群體設定動態遞送的步驟 5 所指定的其他參數之前。
#!/bin/sh
# z/os ikeycmd wrapper that adds CMS v3 support.
# Author:
if [ -n "$JAVA_HOME" ]; then
echo "Using JAVA_HOME=$JAVA_HOME"
else
JAVA_HOME=/usr/lpp/java/java800/J8.0_64/
fi
# Should not require edits below this line
> /tmp/java.security.append
# Check for non-v3 CMS provider in java.security.
if grep CMSProvider $JAVA_HOME/lib/security/java.security >/dev/null; then
if ! grep -i "CMSProvider V3" $JAVA_HOME/lib/security/java.security; then
echo "CMS Provider already present, but no 'V3' argument: $JAVA_HOME/lib/security/java.security"
exit 1
fi
else
# Need to add CMSv3 provider.
# Hunt for the next provider offset
let NEXT_PROVIDER=1
for PROVIDER in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
if grep security.provider.$PROVIDER $JAVA_HOME/lib/security/java.security >/dev/null; then
let NEXT_PROVIDER=$NEXT_PROVIDER+1
fi
done
# Stash the provider line in a file
echo "security.provider.$NEXT_PROVIDER=com.ibm.security.cmskeystore.CMSProvider V3" > /tmp/java.security.append
fi
if [ $# -eq 0 ]; then
$JAVA_HOME/bin/ikeycmd -Djava.security.properties=/tmp/java.security.append -help
else
$JAVA_HOME/bin/ikeycmd -Djava.security.properties=/tmp/java.security.append "$@"
fi