安裝 Application Server 時會產生一個適用於內部測試的 JSSE (Java Secure Socket Extension) 或 NSS (網路安全性服務) 格式的數位憑證。依預設,Application Server 將其憑證資訊儲存在 domain-dir /config 目錄下的憑證資料庫中:
金鑰庫檔案 key3.db 包含 Application Server 的憑證 (包括其私密金鑰)。金鑰庫檔案受密碼保護。可使用 asadmin change-master-password 指令變更該密碼。如需有關 certutil 的更多資訊,請參閱使用 certutil 公用程式。
每個金鑰存放區項目都有專屬別名。安裝後,Application Server 金鑰庫會有一個別名為 s1as 的項目。
信任庫檔案 cert8.db 包含 Application Server 的可信任憑證 (包括其他實體的公開金鑰)。對於受信任的憑證,伺服器已確認憑證中的公開金鑰屬於憑證的所有者。受信任的憑證通常包括那些憑證授權單位 (CA) 的憑證。
在 Platform Edition 的伺服器端,Application Server 使用 JSSE 格式,該格式使用 keytool 來管理憑證和金鑰庫。在 Enterprise Edition 的伺服器端,Application Server 使用 NSS 格式,該格式使用 certutil 來管理儲存私密金鑰和憑證的 NSS 資料庫。在兩種版本中,用戶端 (應用程式用戶端或獨立用戶端) 均使用 JSSE 格式。
依預設,已將 Application Server 配置為具有金鑰庫和信任庫,它們將與範例應用程式配合使用並可用於開發目的。若要用於生產目的,您可能需要變更憑證別名、將其他憑證增加至信任庫或變更金鑰庫檔案和信任庫檔案的名稱和/或位置。
供開發使用的金鑰庫檔案和信任庫檔案儲存在 domain-dir/config 目錄中。
使用 Admin Console,展開 [server-config] 節點 > [JVM 設定] > [JVM 選項] 標籤,以增加或修改憑證檔案新位置的值欄位。
-Dcom.sun.appserv.nss.db=${com.sun.aas.instanceRoot}/NSS-database-directory |
其中 NSS-database-directory 是 NSS 資料庫的位置。
使用 keytool 可以設定和使用 JSSE (Java 安全套接字延伸) 數位憑證。在 Platform Edition 和 Enterprise Edition 中,用戶端 (應用程式用戶端或獨立用戶端) 均使用 JSSE 格式。
J2SE SDK 附帶有 keytool,可以讓管理員管理公開/私密金鑰對和關聯憑證。還可以讓使用者快取正與其通訊的另一方的公開金鑰 (以憑證形式)。
若要執行 keytool,必須配置 shell 環境,以使 J2SE /bin 目錄位於路徑中,或者指令行中必須存在該工具的完整路徑。如需有關 keytool 的更多資訊,請參閱位於以下位置的 keytool 文件:http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html。
以下範例說明了與使用 JSSE 工具處理憑證相關的用法︰
使用 RSA 金鑰演算法在類型為 JKS 的金鑰庫中建立自我簽署憑證。RSA 是 RSA Data Security, Inc. 開發的公開金鑰加密技術。RSA 的首字母縮略分別代表該技術的三位發明者:Rivest、Shamir 和 Adelman。
keytool -genkey -noprompt -trustcacerts -keyalg RSA -alias ${cert.alias} -dname ${dn.name} -keypass ${key.pass} -keystore ${keystore.file} -storepass ${keystore.pass} |
使用 keytool 公用程式產生憑證中列出了建立憑證的另一個範例。
使用預設金鑰演算法在類型為 JKS 的金鑰庫中建立自我簽署憑證。
keytool -genkey -noprompt -trustcacerts -alias ${cert.alias} -dname ${dn.name} -keypass ${key.pass} -keystore ${keystore.file} -storepass ${keystore.pass} |
使用 keytool 公用程式簽署數位憑證中列出了簽署憑證的範例。
顯示類型為 JKS 的金鑰庫中的可用憑證。
keytool -list -v -keystore ${keystore.file} -storepass ${keystore.pass} |
顯示類型為 JKS 的金鑰庫中的憑證資訊。
keytool -list -v -alias ${cert.alias} -keystore ${keystore.file} -storepass ${keystore.pass} |
將 RFC/文字格式的憑證匯入 JKS 庫中。憑證通常會以網際網路 RFC (註釋請求) 1421 標準定義的可列印編碼格式 (而非憑證的二進位編碼) 加以儲存。此憑證格式 (也稱為 Base 64 編碼) 便於透過電子郵件或某些其他機制,將憑證匯出至其他應用程式。
keytool -import -noprompt -trustcacerts -alias ${cert.alias} -file ${cert.file} -keystore ${keystore.file} -storepass ${keystore.pass} |
從類型為 JKS 的金鑰庫中以 PKCS7 格式匯出憑證。公開金鑰加密標準 #7 (加密訊息語法標準) 定義的回覆格式除了包含已核發的憑證外,還包含支援憑證鏈。
keytool -export -noprompt -alias ${cert.alias} -file ${cert.file} -keystore ${keystore.file} -storepass ${keystore.pass} |
從類型為 JKS 的金鑰庫中以 RFC/文字格式匯出憑證。
keytool -export -noprompt -rfc -alias ${cert.alias} -file ${cert.file} -keystore ${keystore.file} -storepass ${keystore.pass} |
從類型為 JKS 的金鑰庫中刪除憑證。
keytool -delete -noprompt -alias ${cert.alias} -keystore ${keystore.file} -storepass ${keystore.pass} |
使用 keytool 公用程式刪除憑證中提供了從金鑰庫中刪除憑證的另一個範例。
使用 keytool 產生、匯入和匯出憑證。依預設,keytool 將在其執行目錄中建立金鑰庫檔案。
變更至要執行憑證的目錄。
始終在包含金鑰庫檔案和信任庫檔案的目錄中產生憑證,依預設,該目錄為 domain-dir/config。如需有關變更這些檔案位置的資訊,請參閱變更憑證檔案的位置。
輸入以下 keytool 指令,以在金鑰庫檔案 keystore.jks 中產生憑證:
keytool -genkey -alias keyAlias-keyalg RSA -keypass changeit -storepass changeit -keystore keystore.jks |
使用任何專屬名稱做為 keyAlias。如果您已變更金鑰庫或私密金鑰密碼的預設值,請使用新密碼取代以上指令中的 changeit。
螢幕上將顯示提示,要求您提供姓名、組織和其他資訊,keytool 將使用這些資訊產生憑證。
輸入以下 keytool 指令,以將產生的憑證匯出至檔案 server.cer (或 client.cer [如果您願意]):
keytool -export -alias keyAlias-storepass changeit -file server.cer -keystore keystore.jks |
如需由憑證授權單位簽署的憑證,請參閱使用 keytool 公用程式簽署數位憑證。
若要建立信任庫檔案 cacerts.jks,並將憑證增加至該信任庫,請輸入以下 keytool 指令:
keytool -import -v -trustcacerts -alias keyAlias -file server.cer -keystore cacerts.jks -keypass changeit |
如果您已變更金鑰庫或私密金鑰密碼的預設值,請使用新密碼取代以上指令中的 changeit。
工具將顯示有關憑證的資訊並提示您是否要信任該憑證。
鍵入 yes,然後按下 Enter 鍵。
keytool 便會顯示如下資訊:
Certificate was added to keystore [Saving cacerts.jks] |
重新啟動 Application Server。
建立數位憑證之後,所有者必須簽署該憑證以防偽造。電子商務站點或那些身份認證對其很重要的站點可以從知名的憑證授權機構 (CA) 購買憑證。如果無需考量認證 (例如當私密安全通訊可以滿足全部需求時),則可節省獲取 CA 憑證所花費的時間和費用並使用自我簽署憑證。
請依照 CA 網站上的說明產生憑證金鑰對。
下載產生的憑證金鑰對。
將憑證儲存在包含金鑰庫檔案和信任庫檔案的目錄中,依預設,該目錄為 domain-dir/config。請參閱變更憑證檔案的位置。
在 shell 中,變更至包含憑證的目錄。
使用 keytool 將憑證匯入本機金鑰庫和本機信任庫 (如有必要)。
keytool -import -v -trustcacerts -alias keyAlias -file server.cer -keystore cacerts.jks -keypass changeit -storepass changeit |
如果金鑰庫密碼或私密金鑰密碼不是預設密碼,請使用新密碼取代以上指令中的 changeit。
重新啟動 Application Server。
若要刪除現有憑證,請使用 keytool -delete 指令,例如:
keytool -delete -alias keyAlias -keystore keystore-name -storepass password
在 Enterprise Edition 的伺服器端,使用網路安全服務 (NSS) 數位憑證管理儲存私密金鑰和憑證的資料庫。對於用戶端 (應用程式用戶端或獨立用戶端),使用使用 Java 安全套接字延伸 (JSSE) 工具中所述的 JSSE 格式。
使用網路安全服務 (NSS) 管理安全性的工具包括:
certutil,指令行公用程式,用於管理憑證和金鑰資料庫。使用 certutil 公用程式中提供了使用 certutil 公用程式的一些範例。
pk12util,指令行公用程式,用於以 PKCS12 格式在憑證/金鑰資料庫和檔案之間匯入和匯出金鑰及憑證。使用 pk12util 公用程式匯入和匯出憑證中提供了使用 pk12util 公用程式的一些範例。
modutil,指令行公用程式,用於管理 secmod.db 檔案或硬體記號中的 PKCS #11 模組資訊。使用 modutil 增加和刪除 PKCS11 模組中提供了使用 modutil 公用程式的一些範例。
這些工具位於 install-dir/lib/ 目錄中。以下環境變數用於指向 NSS 安全性工具的位置︰
LD_LIBRARY_PATH =${install-dir}/lib
${os.nss.path}
在這些範例中,憑證一般名稱 (CN) 是指用戶端或伺服器的名稱。CN 還用於在 SSL 交換過程中比較憑證名稱和產生憑證的主機名稱。如果憑證名稱和主機名稱不符,則在 SSL 交換過程中會產生警告或異常。在某些範例中,為方便起見,使用憑證一般名稱 CN=localhost,以便所有使用者均可以使用該憑證,而不必使用其真實主機名稱建立新憑證。
以下小節中的範例說明了與使用 NSS 工具處理憑證相關的用法︰
執行 certutil 之前,請確定 LD_LIBRARY_PATH 指向執行此公用程式所需之程式庫的位置。這個位置可以從 asenv.conf (整個產品的配置檔案) 中 AS_NSS_LIB 的值加以識別。
憑證資料庫工具 certutil 是 NSS 指令行公用程式,可建立和修改 Netscape Communicator cert8.db 和 key3.db 資料庫檔案。該公用程式還可以列出、產生、修改或刪除 cert8.db 檔案中的憑證,以及建立或變更密碼、產生新的公開和私密金鑰對、顯示金鑰資料庫的內容或刪除 key3.db 檔案中的金鑰對。
金鑰和憑證管理程序通常以在金鑰資料庫中建立金鑰開始,然後在憑證資料庫中產生和管理憑證。以下文件論述了如何使用 NSS (包括 certutil 公用程式的語法) 管理憑證和金鑰資料庫:http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html。
以下清單中的每個項目均提供了使用 NSS 和 JSSE 安全性工具建立和/或管理憑證的範例。
產生自我簽署的伺服器和用戶端憑證。在此範例中,CN 必須為 hostname.domain.[com|org|net|...] 格式。
在此範例中,目錄為 domain-dir/config。serverseed.txt 和 clientseed.txt 檔案可以包含任何隨機文字。此隨機文字將用於產生金鑰對。
certutil -S -n $SERVER_CERT_NAME -x -t "u,u,u" -s "CN=$HOSTNAME.$HOSTDOMAIN, OU=Java Software, O=Sun Microsystems Inc., L=Santa Clara, ST=CA, C=US" -m 25001 -o $CERT_DB_DIR/Server.crt -d $CERT_DB_DIR -f passfile <$CERT_UTIL_DIR/serverseed.txt |
產生用戶端憑證。此憑證也是自我簽署憑證。
certutil -S -n $CLIENT_CERT_NAME -x -t "u,u,u" -s "CN=MyClient, OU=Java Software, O=Sun Microsystems Inc., L=Santa Clara, ST=CA, C=US" -m 25002 -o $CERT_DB_DIR/Client.crt -d $CERT_DB_DIR -f passfile <$CERT_UTIL_DIR/clientseed.txt |
驗證在之前的分項符號中產生的憑證。
certutil -V -u V -n $SERVER_CERT_NAME -d $CERT_DB_DIR certutil -V -u C -n $CLIENT_CERT_NAME -d $CERT_DB_DIR |
顯示可用憑證。
certutil -L -d $CERT_DB_DIR |
將 RFC/文字格式的憑證匯入 NSS 憑證資料庫中。
certutil -A -a -n ${cert.nickname} -t ${cert.trust.options} -f ${pass.file} -i ${cert.rfc.file} -d ${admin.domain.dir}/${admin.domain}/config |
以 RFC 格式從 NSS 憑證資料庫中匯出憑證。
certutil -L -a -n ${cert.nickname} -f ${pass.file} -d ${admin.domain.dir}/${admin.domain}/config > cert.rfc |
從 NSS 憑證資料庫中刪除憑證。
certutil -D -n ${cert.nickname} -f ${pass.file} -d ${admin.domain.dir}/${admin.domain}/config |
將 NSS 資料庫中的憑證轉換為 JKS 格式
certutil -L -a -n ${cert.nickname} -d ${admin.domain.dir}/${admin.domain}/config > cert.rfc keytool -import -noprompt -trustcacerts -keystore ${keystore.file} -storepass ${keystore.pass} -alias ${cert.alias} -file cert.rfc |
pk12util 指令行公用程式用於以 PKCS12 格式在憑證/金鑰資料庫和檔案之間匯入與匯出金鑰和憑證。PKCS12 為公開金鑰加密標準 (PKCS) #12,個人資訊交換語法標準。如需有關 pk12util 公用程式的說明,請至http://www.mozilla.org/projects/security/pki/nss/tools/pk12util.html。
將 PKCS12 格式的憑證匯入 NSS 憑證資料庫中。
pk12util -i ${cert.pkcs12.file} -k ${certdb.pass.file} -w ${cert.pass.file} -d ${admin.domain.dir}/${admin.domain}/config |
將 PKCS12 格式的憑證匯入 NSS 憑證資料庫記號模組中。
pk12util -i ${cert.pkcs12.file} -h ${token.name} -k ${certdb.pass.file} -w ${cert.pass.file} -d ${admin.domain.dir}/${admin.domain}/config |
以 PKCS12 格式從 NSS 憑證資料庫中匯出憑證。
pk12util -o -n ${cert.nickname} -k ${pass.file} -w${cert.pass.file} -d ${admin.domain.dir}/${admin.domain}/config |
以 PKCS12 格式從 NSS 憑證資料庫記號模組中匯出憑證 (對硬體加速功能配置有用)。
pk12util -o -n ${cert.nickname} -h ${token.name} -k ${pass.file} -w ${cert.pass.file} -d ${admin.domain.dir}/${admin.domain}/config |
將 PKCS12 憑證轉換為 JKS 格式 (需要 Java 來源)︰
<target name="convert-pkcs12-to-jks" depends="init-common"> <delete file="${jks.file}" failonerror="false"/> <java classname="com.sun.enterprise.security.KeyTool"> <arg line="-pkcs12"/> <arg line="-pkcsFile ${pkcs12.file}"/> <arg line="-pkcsKeyStorePass ${pkcs12.pass}"/> <arg line="-pkcsKeyPass ${pkcs12.pass}"/> <arg line="-jksFile ${jks.file}"/> <arg line="-jksKeyStorePass ${jks.pass}"/> <classpath> <pathelement path="${s1as.classpath}"/> <pathelement path="${env.JAVA_HOME}/jre/lib/jsse.jar"/> </classpath> </java> </target>
安全性模組資料庫工具 modutil 是指令行公用程式,用於管理 secmod.db 檔案或硬體記號中的 PKCS #11 (加密記號介面標準) 模組資訊。您可以使用此工具來增加和刪除 PKCS #11 模組、變更密碼、設定預設值、列出模組內容、啟用或停用槽、啟用或停用 FIPS-140-1 規範遵循,以及為加密作業指定預設提供者。此工具還可以建立 key3.db、cert7.db 和 secmod.db 安全性資料庫檔案。如需有關此工具的更多資訊,請至 http://www.mozilla.org/projects/security/pki/nss/tools/modutil.html。
增加新的 PKCS11 模組或記號。
modutil -add ${token.module.name} -nocertdb -force -mechanisms RSA:DSA:RC4:DES -libfile ${SCA.lib.path} -dbdir ${admin.domain.dir}/${admin.domain}/config |
從 NSS 庫中刪除 PKCS11 模組。
modutil -delete ${token.module.name} -nocertdb -force -mechanisms RSA:DSA:RC4:DES -libfile ${SCA.lib.path} -dbdir ${admin.domain.dir}/${admin.domain}/config |
列出 NSS 庫中的可用記號模組。
modutil -list -dbdir ${admin.domain.dir}/${admin.domain}/config |
您可以使用硬體加速器記號來改善加密效能,同時提供安全金鑰儲存功能。另外,您也可以經由智慧卡,為一般使用者提供行動式安全金鑰儲存。
Sun Java System Application Server 8.1 和 8.2 Standard Edition 或 Enterprise Edition 在 Java 2 Platform, Standard Edition (J2SE 平台) 5.0 上執行時,支援對 SSL 或 TLS 通訊使用 PKCS#11 記號,並支援使用網路安全性服務 (NSS) 工具來管理金鑰和 PKCS#11 記號。本小節說明 Application Server 如何提供上述支援,同時帶您逐步執行相關配置的程序。
J2SE 5.0 PKCS#11 提供者可以和 Application Server 執行階段輕鬆整合。藉由這些提供者,您可以在 Application Server 中使用硬體加速器和其他 PKCS#11 記號,以達到快速效能,並保護 SSL 或 TLS 通訊中原有的私密金鑰。
本小節包含下列主題:
Sun Java System Application Server 8.1 和 8.2 Standard Edition 或 Enterprise Edition 已通過 Sun Crypto Accelerator 1000 (SCA-1000) 和 SCA-4000 的測試。
Application Server 和 J2SE 5.0 一同使用時,可以和 PKCS#11 記號進行通訊。和 Application Server 一起封裝的是 NSS PKCS#11 記號程式庫 (適用於 NSS 內部 PKCS#11 模組,通常稱為 NSS 軟體記號) 以及 NSS 指令行管理工具。如需更多詳細資訊,請參閱使用網路安全服務 (NSS) 工具。
使用 NSS 工具根據 PKCS#11 記號和 J2SE PKCS#11 提供者建立金鑰和憑證,以便在執行階段存取記號金鑰和憑證。PKCS#11 提供者為加密服務的提供者,可做為原生 PKCS#11 程式庫外圍的包裝程式。PKCS#11 記號通常是指含原生 PKCS#11 介面的所有硬體和軟體記號。硬體記號是以實體裝置 (如硬體加速器和智慧卡) 實作的 PKCS#11 記號。軟體記號則是完全以軟體實作的 PKCS#11 記號。
如果您在 J2SE 1.4.x 平台上執行 Application Server,則僅支援一個 PKCS#11 記號,即 NSS 軟體記號。
在 Microsoft Windows 環境下,請將 NSS 程式庫 AS_NSS 和 NSS 工具目錄 AS_NSS_BIN 的位置,增加到 PATH 環境變數中。為簡化說明,本小節所描述的程序僅使用 UNIX 指令。必要時請將 UNIX 變數替代為 Windows 變數。
硬體加密加速器的配置可分為兩個主要程序:
本小節說明如何以 NSS 安全性工具 modutil 配置 PKCS#11 記號。請使用下列程序來配置 PKCS#11 記號。
輸入下列指令 (全部置於同一行):
modutil -dbdir AS_NSS_DB -nocertdb -force -add moduleName -libfile absolute_path_of_pkcs11_library -mechanisms list_of_security_mechanisms
其中,AS_NSS_DB 是 NSS 資料庫目錄 (和您使用 Domain Administration Server (DAS) 時的 AS_DOMAIN_CONFIG 相同)
例如,若要配置硬體加速器記號,請輸入下列內容 (全部置於同一行):
modutil -dbdir AS_NSS_DB -nocertdb -force -add "Sun Crypto Accelerator" -libfile /opt/SUNWconn/crypto/lib/libpkcs11.so -mechanisms RSA:DSA:RC4:DES
此範例中的硬體加速器為 SCA–1000 加密加速器。依預設,對應的 PKCS#11 程式庫位於 /opt/SUNWconn/crypto/lib/libpkcs11.so。
mechanisms 必須是記號上可供使用之加密機制的完整清單。如果僅使用數個可用的加密機制,請參閱配置 J2SE 5.0 PKCS#11 提供者。如要取得所有支援機制的完整清單,請參閱 NSS 安全性工具網站上的 modutil 文件,網址是 http://www.mozilla.org/projects/security/pki/nss/tools。
以下範例假設在記號安裝期間所指定的記號名稱為 mytoken。
為驗證硬體加速器的配置是否正確,請輸入下列指令:
modutil -list -dbdir AS_NSS_DB
標準輸出如以下所示:
Using database directory /var/opt/SUNWappserver/domains/domain1/config ... Listing of PKCS#11 Modules ----------------------------------------------------------- 1. NSS Internal PKCS#11 Module slots: 2 slots attached status: loaded slot: NSS Internal Cryptographic Services token: NSS Generic Crypto Services slot: NSS User Private Key and Certificate Services token: NSS Certificate DB 2. Sun Crypto Accelerator library name: /opt/SUNWconn/crypto/lib/libpkcs11.so slots: 1 slot attached status: loaded slot: Sun Crypto Accelerator:mytoken token: mytoken ----------------------------------------------------------- |
本小節說明數種使用 certutil 和 pk12util 來建立和管理金鑰與憑證的常用程序。如需有關 certutil 和 pk12util 的詳細資訊,請參閱使用網路安全服務 (NSS) 工具以及 NSS 安全性工具網站上的文件,網址是 http://www.mozilla.org/projects/security/pki/nss/tools。
藉由在 java.security 特性檔案 (位於 Java 執行階段的 JAVA_HOME/jre/lib/security 目錄中) 中配置 PKCS#11 提供者,您還可以使用 J2SE keytool 公用程式來管理金鑰和憑證。如需有關使用 keytool 的詳細資訊,請參閱「Java PKCS#11 Reference Guide」,網址為 http://java.sun.com/j2se/1.5.0/docs/guide/secuirty/p11guide.html。
本小節說明下列主題:
若要列出已配置 PKCS#11 記號中的金鑰和憑證,請執行下列指令:
certutil -L -d AS_NSS_DB [-h tokenname]
例如,若要列出預設 NSS 軟體記號的內容,請鍵入:
certutil -L -d AS_NSS_DB
標準輸出和下列內容類似:
verisignc1g1 T,c,c verisignc1g2 T,c,c verisignc1g3 T,c,c verisignc2g3 T,c,c verisignsecureserver T,c,c verisignc2g1 T,c,c verisignc2g2 T,c,c verisignc3g1 T,c,c verisignc3g2 T,c,c verisignc3g3 T,c,c s1as u,u,u |
在以上的輸出中,記號名稱顯示在左欄,三個一組的可信任屬性顯示在右欄。以 Application Server 憑證而言,通常是 T,c,c。不同於 J2SE java.security.KeyStore API 僅包含一個信任層級,NSS 技術包含數個信任層級。Application Server 主要注重於第一種信任屬性,該屬性說明此記號使用 SSL 的方式。對於此屬性:
T 代表憑證授權單位 (CA) 是可信任的用戶端憑證核發者。 |
u 代表您可以使用憑證 (和金鑰) 來進行認證或簽署。 |
屬性組合 u,u,u 代表資料庫中有私密金鑰。 |
若要列出硬體記號 mytoken 的內容,請執行下列指令:
certutil -L -d AS_NSS_DB -h mytoken
會提示您輸入硬體記號的密碼。標準輸出和下列內容類似:
Enter Password or Pin for "mytoken": mytoken:Server-Cert 	u,u,u |
使用 certutil 來建立自我簽署的憑證,並匯入或匯出憑證。若要匯入或匯出私密金鑰,請使用 pk12util 公用程式。如需更多詳細資訊,請參閱使用網路安全服務 (NSS) 工具。
在 Application Server 中,請勿直接使用 NSS 工具 certutil 和 modutil 來修改 NSS 密碼。否則 Application Server 中的安全性資料可能會毀壞。
Application Server 需藉由 J2SE PKCS#11 提供者,在執行階段存取位於 PKCS#11 記號中的金鑰和憑證。依預設,Application Server 會為 NSS 軟體記號配置 J2SE PKCS#11 提供者。本小節說明如何置換 J2SE PKCS#11 提供者的預設配置。
在 Application Server 上,會為每個 PKCS#11 記號產生下列預設的 PKCS#11 配置參數。
預設 NSS 軟體記號的配置:
name=internal library=${com.sun.enterprise.nss.softokenLib} nssArgs="configdir='${com.sun.appserv.nss.db}' certPrefix='' keyPrefix='' secmod='secmod.db'" slot=2 omitInitialize = true |
SCA 1000 硬體加速器的配置:
name=HW1000 library=/opt/SUNWconn/crypto/lib/libpkcs11.so slotListIndex=0 omitInitialize=true |
這些配置符合「Java PKCS#11 Reference Guide」所描述的語法。
只要求名稱參數必須為唯一。J2SE 5.0 有些舊版本僅支援字母數字式的字元。
您可以建立自訂的配置檔案,以置換預設的配置參數。例如,您可以在 SCA–1000 中,明確停用 RSA 密碼和 RSA 金鑰對產生器。如需有關停用 RSA 密碼和 RSA 金鑰對產生器的詳細資訊,請參閱 http://www.mozilla.org/projects/security/pki/nss/tools。
建立自訂的配置檔案:
使用下列程式碼建立名為 install-dir/mypkcs11.cfg 的配置檔案,然後儲存該檔案。
name=HW1000 library=/opt/SUNWconn/crypto/lib/libpkcs11.so slotListIndex=0 disabledMechanisms = { 	CKM_RSA_PKCS 	CKM_RSA_PKCS_KEY_PAIR_GEN } omitInitialize=true |
如有必要,請更新 NSS 資料庫。在這個案例中,請更新 NSS 資料庫,這樣才能停用 RSA。
執行下列指令:
modutil -undefault "Sun Crypto Accelerator" -dbdir AS_NSS_DB -mechanisms RSA |
mechanisms 清單上的演算法名稱,與預設配置中的演算法名稱不同。如需 NSS 中有效 mechanisms 的清單,請參閱 NSS 安全性工具網站上的 modutil 文件,網址是 http://www.mozilla.org/projects/security/pki/nss/tools。
如下所示進行變更,在適當的位置增加特性以更新伺服器:
<property name="mytoken" value="&InstallDir;/mypkcs11.cfg"/> |
特性的位置可能是下列其中一處:
若提供者適用於 DAS 或伺服器實例,請將特性增加到相關聯的 <security-service> 之下。
若提供者適用於節點代理程式,請將特性增加到 domain.xml 檔案中,相關聯的 <node-agent> 元素之下。
重新啟動 Application Server。
自訂配置將在重新啟動後生效。