程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> WAS高級管理:使用數據庫域和安全元素

WAS高級管理:使用數據庫域和安全元素

編輯:DB2教程

IBM® WebSphere® Application Server Community Edition 大大簡化了密鑰存儲庫、安全域和數據庫池的創建,它可讓您在管理控制台中執行這些高級管理任務,而無需手動輸入命令。

引言

IBM WebSphere Application Server Community Edition(以下稱為 Community Edition)是基於 apache Geronimo 的開源 Java™ Platform, Enterprise Edition (Java EE) 應用服務器。Community Edition 的資源占用量非常小,並且可以免費使用。

Community Edition 的基於 JSR-168 的管理控制台本質上是 Community Edition 中部署的一個 Web 應用程序,它為管理本地或遠程服務器的許多方面提供了基於 Web 的用戶友好的界面。如果您是第一次使用 Community Edition 和管理控制台,則文章 使用 WebSphere Application Server Community Edition 中的 Web 控制台 是一篇很好的入門文章,其中介紹了可以在控制台中執行的許多常見的管理任務。

使用 DB2 Express-C 數據庫

文章 使用 WebSphere Application Server Community Edition 中的 Web 控制台 闡述了如何使用嵌入在 Community Edition 中的 IBM Cloudscape™ 數據庫,以及如何創建數據庫池。這裡我們將介紹如何使用數據庫池以及為 DB2 Express-C 創建數據庫池。

DB2 Express-C 是一種先進的混合型數據服務器,可以支持關系數據庫和純 XML 存儲。DB2 Express-C 是一種免費的數據服務器,用於開發和部署使用 XML、C/C++、Java、.Net®、PHP 等創建的應用程序。它可以運行多達兩個雙核 CPU 服務器、多達 4 GB 的內存、任何存儲系統設置,而且無任何數據庫大小限制和其他人為限制。

DB2 Express-C 和 Cloudscape 都是用於生產和開發的高價值數據服務器,而且免費提供。Cloudscape 非常適合於需要完全不可見的嵌入式 Java 應用程序數據服務器的應用程序。在應用程序需要具有高級功能(如增強的可擴展性、可管理性和 SQL 支持)的高性能和高可擴展數據服務器時,可以使用 DB2 Express-C。DB2 Express-C 非常適合於所有那些使用 PHP、.Net、C/C++、Java 和其他非 Java 編程語言創建的數據服務器應用程序。

您可以使用基於命令的用戶界面工具(稱為 DB2 Express-C 命令編輯器,請參見圖 1)方便地與 DB2 Express-C 數據庫進行交互,該工具包括兩個窗格:

用於輸入命令的命令窗格。

用於查看命令執行結果的結果窗格。

要打開 DB2 Express-C 命令編輯器,請導航到 Select Programs => IBM DB2 => Command Line tools => Command Editor。


圖 1. DB2 Express-C 命令編輯器

創建數據庫和表

下面是一個簡短的練習,可幫助您獲得一些 DB2 Express-C 實際操作體驗。在本練習中,您將使用命令編輯器為 DB2 Express-C 創建一個數據庫和表。然後,您將了解如何從管理控制台為下面要創建的示例數據庫創建數據庫池:

要創建一個名為“student”的新數據庫,請在命令窗格中輸入此命令,並單擊 Execute(綠色箭頭)按鈕:

Create db student

在成功創建之後,結果窗格中將顯示以下消息:

The CREATE DATABASE command completed successfully

要創建到數據庫的 JDBC 連接,以便我們可以使用它,請執行以下命令:

Connect to student

要創建一個名為“student”的表,請在命令窗格中輸入此命令,並單擊 Execute 按鈕:

Create table student(rollno VARCHAR(30), name VARCHAR(50), dob VARCHAR(40))

如果看到以下錯誤消息:

SQL1032N No start database manager command was issued

則表示沒有啟動您的數據庫管理器。請在命令編輯器中執行以下命令啟動數據庫管理器:

db2start


創建 DB2 Express-C 數據庫池

數據庫池是一個數據結構,它包含 JDBC 驅動程序為連接特定數據庫所需的信息。Community Edition 提供數據庫連接池,您可以通過連接池將特定數據庫綁定到 JNDI,並可以從應用程序訪問它。

文章 U使用 WebSphere Application Server Community Edition 中的 Web 控制台 詳細介紹了如何為嵌入到 Community Edition 中的 Cloudscape 數據庫創建數據庫池。這裡,您可以為 DB2 Express-C 創建數據庫池。對於任何其他 databases that are supported by Community Edition,您可以使用相同的方法。

要為 DB2 Express-C 數據庫創建數據庫池:

從 Console Navigation 窗格中,選擇 Services category 下面的 Database Pools。數據庫池 Portlet 將出現(圖 2)。


圖 2. 數據庫池 Portlet

選擇 Using the Geronimo database pool wizard。

在數據庫池創建向導(圖 3)中,輸入或選擇以下值:

Pool Name: studentpool

Pool Type:選擇 DB2 XA 以使用 DB2 Express C 中可用的數據庫

Driver JAR:選擇 com.ibm.db2/db2jcc/8.2/jar 和 com.ibm.db2/db2jcc_license_cu/8.2/jar

Database Name:student(這是我們以前創建的數據庫)

User and PassWord:輸入任何有效值

Port Number:50000 是 DB2 Express-C 的缺省值。如果在安裝過程中更改了該值,請指定實際的端口號。

將其余字段保留為原樣。

單擊 Deploy 以便將該池部署到服務器。

單擊 Show Plan 可以看到池的部署計劃(將在下面介紹)。


圖 3. 數據庫池創建

數據庫池部署計劃

Community Edition 使用特定於 Geronimo 的部署描述符,以下稱為 Geronimo 部署計劃。此 Geronimo 部署計劃格式類似於 Java EE 1.4 中的 Java EE 部署描述符,但不同的是前者特定於應用服務器。它是基於 XML 框架的 XML 文件,該文件具有與應用程序模塊或服務相關的配置信息。

作為在控制台中使用數據庫池創建 Portlet 的替代方法,您還可以通過部署相應的部署計劃為任何數據庫創建新數據庫池,這將是一個 .xml 文件。不過,您需要手動使用正確的 XML 框架創建計劃,該框架在 <WASCE_HOME>schema 目錄中指定。此步驟可以方便地在控制台中執行,只需在一些字段中選擇一些值即可,請參見上文。

清單 1 顯示了在前一部分中創建的數據庫池的部署計劃。這是在選擇 Show Plan 時顯示的計劃(圖 3)。


清單 1. 數據庫池部署計劃
        
<?XML version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/XML/ns/J2EE/connector-1.1">
  <dep:environment xmlns:dep="http://geronimo.apache.org/XML/ns/deployment-1.1">
    <dep:moduleId>
      <dep:groupId>console.dbpool</dep:groupId>
      <dep:artifactId>studentpool</dep:artifactId>   ----> Database pool name
      <dep:version>1.0</dep:version>
      <dep:type>rar</dep:type>
    </dep:moduleId>
    <dep:dependencIEs>
      <dep:dependency>
        <dep:groupId>com.ibm.db2</dep:groupId>   -----> Dependency files
        <dep:artifactId>db2jcc</dep:artifactId>
        <dep:version>8.2</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>com.ibm.db2</dep:groupId>   ----> Dependency files
        <dep:artifactId>db2jcc_license_cu</dep:artifactId>
        <dep:version>8.2</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
    </dep:dependencIEs>
  </dep:environment>
  <resourceadapter>
    <outbound-resourceadapter>
      <connection-definition>   ----> Database connection information
        <connectionfactory-interface>Javax.sql.DataSource
      </connectionfactory-interface>
        <connectiondefinition-instance>
          <name>studentpool</name>   ----> Database pool JNDI name
              <config-property-setting
name="User">Anitha</config-property-setting>
              <config-property-setting
name="PassWord">bc0nf1dent</config-property-setting>
              <config-property-setting
name="PortNumber">50000</config-property-setting>
              <config-property-setting
name="ServerName">localhost</config-property-setting>
              <config-property-setting
name="DatabaseName">STUDENT</config-property-setting>
              <config-property-setting
name="DriverType">4</config-property-setting>
          <connectionmanager>
            <local-transaction/>
            <single-pool>
              <max-size>10</max-size>
              <min-size>0</min-size>
              <match-one/>
            </single-pool>
          </connectionmanager>
        </connectiondefinition-instance>
      </connection-definition>
    </outbound-resourceadapter>
  </resourceadapter>
</connector>

您將看到所有與 DB2 Express-C 數據庫相關的配置信息(如數據庫名稱、連接信息、JDBC 驅動程序依賴項等)都已在上面的計劃中指定。這適用於任何數據庫,無論是用於 DB2 Express-C、Cloudscape 的數據庫,還是任何其他受支持的數據庫。您只需指定 JDBC 驅動程序依賴項和相應的連接信息。

使應用程序訪問數據庫池

根據規范,應用程序模塊使用數據庫連接池需要兩個步驟:

模塊的部署信息必須聲明一個資源引用,並將其映射到可用於該模塊的特定連接池。

該模塊的代碼必須通過 JNDI 查找連接池。

在部署描述符中指定數據庫池

您需要在兩個文件中為數據庫池指定資源參考。一個是 Java EE 1.4 規范中的標准部署描述符文件,另一個是特定於 Geronimo 的部署計劃。表 1 顯示了與應用程序存檔類型相對應的實際文件。


表 1. 部署描述符文件
部署的存檔文件 Java EE 1.4 規范中的標准部署描述符文件 特定於 Geronimo 的部署計劃 Web 應用程序存檔 (WAR) 文件 web.XML geronimo-web.XML 包含 EJB 的 JAR ejb-jar.XML openejb-jar.XML 企業應用程序 (EAR) 文件 application.XML geronimo-application.XML Java EE 連接器資源存檔 (RAR) ra.XML geronimo-ra.XML Java EE 客戶機應用程序存檔 (JAR) application-clIEnt.XML geronimo-application-clIEnt.XML

例如,讓我們了解一下如何在 Web 應用程序的部署計劃中指定資源參考。

在 WEB-INF/web.XML 中

在部署數據庫池之後,應用程序模塊可以使用在配置過程中指定的名稱來引用它。為此,您應在其標准 Java EE 部署描述符 (web.XML) 中聲明一個類型為 Javax.sql.DataSource 的 resource-ref。清單 2 顯示了如何在 web.XML 文件中指定資源引用。


清單 2. web.XML
        
<resource-ref>
  <res-ref-name>jdbc/MyDataSource</res-ref-name>   ---> Resource reference
  <res-type>Javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  <res-sharing-scope>Shareable</res-sharing-scope>
 </resource-ref>

在 WEB-INF/geronimo-web.XML 中

在該模塊的 Geronimo 部署計劃中,您需要指定將使用服務器中的哪個連接池來滿足 Web 模塊所需的數據源。為此,您需要將數據庫池的名稱指定為 ref-name,該名稱應映射到 web.xml 中的 resource-ref。清單 3 顯示了如何在 geronimo-web.XML 文件中指定資源引用。


清單 3. geronimo-web.XML
        
<?XML version="1.0" encoding="UTF-8"?>
<web-app
  xmlns="http://geronimo.apache.org/XML/ns/J2EE/web-1.1">
  <environment>
    <moduleId>
      <artifactId>MyWebApp</artifactId>
    </moduleId>
    <dependencIEs>
      <dependency>
        <groupId>console.dbpool</groupId>
        <artifactId>studentpool</artifactId>
      </dependency>
    </dependencIEs>
  </environment>
  <context-root>/MyWebApp</context-root>
  <!-- security settings, if any, go here -->
  <resource-ref>
    <ref-name>jdbc/MyDataSource</ref-name>   ---> Resource reference
    <resource-link>studentpool</resource-link>
  </resource-ref>
</web-app>

在部署應用程序時,它將查找 Geronimo 部署計劃。如果您嘗試部署沒有部署計劃的 Java EE 應用程序模塊,服務器將盡力使用缺省值執行操作。

此 Geronimo 部署計劃可以作為單獨文件保存,也可以打包在應用程序中。如果沒有打包在應用程序中,那麼您可以在應用程序部署過程中在 Plan 字段中指定計劃文件。如果部署計劃是存檔的一部分,則它丟失的機會將會小得多。不過,將計劃保存為一個單獨的文件可為您提供更大的靈活性,因為您無需每次在對部署計劃進行更改時都打包該文件。

在應用程序模塊中

清單 4 顯示了在應用程序模塊中查找創建的數據庫連接池所需的代碼。


清單 4. 應用程序代碼
        
InitialContext ctx = new InitialContext();
  DataSource ds = ctx.lookup("Java:comp/env/jdbc/MyDataSource"); ---> Resource reference
  Connection con = ds.getConnection();

JNDI 查找字符串是 Java:comp/env/ 加上在 web.xml 中使用的 res-ref-name(清單 2)。而且,還需記住,資源引用名稱 jdbc/MyDataSource 在 web.xml、geronimo-web.XML 和應用程序代碼中應該相同。

Community Edition 不支持在其中列出所有資源的“全局 JNDI 空間”。應用程序訪問數據庫池的唯一便捷方法是使用資源引用,並通過組件的本地 Java:comp/env/ 命名空間訪問池(如上文所述)。

創建安全域

安全域是保護 Web 應用程序資源的機制。它向您提供使用定義的安全約束保護資源的能力,然後定義可以訪問受保護資源的用戶角色。Community Edition 提供各種類型的安全域,可以根據其身份驗證機制的後端情況對它們進行分類。Community Edition 支持的安全域類型包括:

屬性文件域:存儲在磁盤上屬性文件中的憑據。

數據庫 (SQL) 域:存儲在數據庫表中的憑據。

LDAP 域:存儲在 LDAP 服務中的憑據。

證書屬性文件域:使用磁盤上的數字證書和屬性文件。

自定義域:基於用戶實現的登錄模塊和用戶定義的主體。

屬性文件域

讓我們看一個使用管理控制台創建屬性文件域的示例,並了解它是如何工作的。可以用類似的方式創建其他類型的域。我們這裡之所以選擇此域,是因為在所有類型的安全域中它是最簡單的,不需要設置任何先決條件,並且文本編輯器足以創建包含用戶和組信息的屬性文本文件。

要從管理控制台創建屬性文件域,請執行以下操作:

在 <wasce_home>varsecurity 目錄下(其中 <wasce_home> 是 Community Edition 的安裝目錄),創建名為 user1.propertIEs 的文本文件。

在此新文件中,按逐行方式為您希望向其提供應用程序訪問的用戶指定用戶名和相應的密碼,如清單 6 所示。此文件的每一行表示 <username>=<passWord>。保存此文件。


清單 6. user1.propertIEs
            
Anitha=anitha123
Sridhar=Sridhar123
Manu=manu123
Vamsi=vamsi123

在 <wasce_home>varsecurity 目錄下(其中 <wasce_home> 是 Community Edition 的安裝目錄),創建名為 group1.properties 的文本文件。在此新文件中,按逐行方式指定組名稱和屬於每個組的用戶,如清單 7 所示。此文件的每一行表示 <group name>=<username1>、<username2> ...... 確保 <username1>、<username2> 等包括在 user1.propertIEs 文件中。在清單 7 的示例中,Anitha 和 Sridhar 屬於 group1;Manu 和 Vamsi 屬於 group2。保存該文件。


清單 7. group1.propertIEs
            
group1=Anitha, Sridhar
group2=Manu, Vamsi

在管理控制台的 Console Navigation 窗格中,通過單擊安全類別下的 Security Realms 鏈接,啟動安全域 Portlet。圖 4 顯示了安全域 Portlet,它顯示所有可用的安全域。


圖 4. 安全域 Portlet

在缺省情況下,Community Edition 通過屬性文件使用名為 geronimo-properties-realm(圖 4)的安全域對用戶進行身份驗證。相應的文件是位於 <wasce_home>varsecurity 目錄下的 users.properties 和 group.propertIEs。

選擇 Add new security realm 啟動 Create Security Realm 向導。

在步驟 1 面板(圖 5)上,輸入或選擇以下值:

Name of Security Realm:任何有效值。

Realm Type:PropertIEs of File Realm。

單擊 Next。


圖 5. 創建安全域,步驟 1

在步驟 2 面板(圖 6)上,輸入以下值:

Users File URI:var/security/users1.propertIEs(在本例中)

Groups File URI:var/security/group1.propertIEs(在本例中)

單擊 Next。


圖 6. 創建安全域,步驟 2

(在 URI 字段中,只使用正斜槓,並且 URI 不能以斜槓開頭。指定與 Community Edition 的主目錄相關的位置。)

在步驟 3 面板(圖 7)上,根據情況全部選中三個選項或者選中某一個(Enable Auditing、Enable Lockout 和 Store PassWord)。

單擊 Test a Login 按鈕,以測試憑據的工作狀態是否良好。

要查看域的部署計劃,請選擇 Skip Test and Show Plan。

要部署域,請選擇 Skip Test and Deploy。


圖 7. 創建安全域,步驟 3

成功創建和部署域之後,域的名稱將列在安全域 Portlet(圖 4)中。您可以在部署描述符中,通過使用 Portlet 提供的 edit 和 usage 鏈接來編輯或查看此域的用法。

該域現在可供使用了。通過使用這些域,您可以防止未授權用戶訪問您的應用程序。

密鑰存儲庫

密鑰存儲庫用於存儲加密密鑰和證書。您需要使用密鑰存儲庫將 Community Edition 配置為支持 HTTPS 訪問 Web 應用程序。也就是說,要定義 Tomcat HTTPS 連接器,您必須指定包含證書(用於加密使用 SSL(安全套接字層)協議交換的數據)和密碼的密鑰存儲庫文件的名稱。

密鑰存儲庫中的證書具有以下兩個重要功能:

它包含用於加密在 SSL 連接上交換的數據的公鑰和私鑰。當數據流經網絡時,加密可以防止數據被查看或修改。服務器的證書自動發送到期望使用 SSL 連接的每個客戶機。

它包含一組憑據,這些憑據標識服務器和與該服務器關聯的公司。這些憑據是否可信取決於客戶機是否信任對證書進行數字簽名的證書頒發機構。

在 Community Edition 中,Keystore Configuration 工具(圖 8)可供在控制台上使用。您可以使用此工具創建、編輯和刪除密鑰存儲庫及其內容。要啟動該工具,請轉到 Console Navigation 窗格,並單擊安全類別下的 Keystores 鏈接。


圖 8. Keystore Configuration 工具

Keystore Configuration 工具可顯示密鑰存儲庫文件、密鑰存儲庫內容以及 Editable 和 Available 標志的狀態;即鎖定密鑰,還是取消鎖定密鑰。

帶有證書的 Community Edition 中的缺省密鑰存儲庫是“geronimo-default”。您可以使用它測試 SSL 連接。此密鑰存儲庫的密碼是“secret”,相應的密鑰存儲庫文件位於 <wasce_home>/var/security/keystore 目錄下。

密鑰存儲庫開始時是鎖定的,不能編輯。Editable 標志指示是否取消鎖定密鑰存儲庫,可以進行編輯(通過輸入密鑰存儲庫密碼);此狀態在當前登錄會話期間持續不變。Available 標志指示是否保存了密碼,使密鑰存儲庫用於服務器中的其他組件。

要取消鎖定 Editable 密鑰存儲庫,請執行以下操作:

在 Editable 欄中,單擊 lock 圖標(圖 8)。

在 Portlet 中的 Enter keystore passWord 字段中指定密碼(圖 9)。

單擊 Unlock Keystore 按鈕。


圖 9. 取消鎖定密鑰存儲庫

僅在 Editable 鎖定打開時,才能夠查看和編輯密鑰存儲庫的內容,它由可用的密鑰和證書組成(圖 10)。在打開時,您可以創建、修改和刪除私鑰和受信任證書項。


圖 10. 顯示取消鎖定的密鑰存儲庫

按照相同的方法可取消鎖定 Available。取消鎖定後,將能夠生成 CSR(證書簽名應答),或導入 CA(證書頒發機構)應答。稍後將詳細介紹這些元素。

創建密鑰存儲庫

正如上面提到的,要將Community Edition 配置為支持 HTTPS 訪問 Web 應用程序,您需要使用帶有證書的密鑰存儲庫。您可以使用現有密鑰存儲庫,或創建新的密鑰存儲庫。

要創建新的密鑰存儲庫,請執行以下操作:

在 Keystore Configuration 工具(圖 8)中,單擊 New Keystore。

在 Keystore file name 和 PassWord for new keystore 字段中輸入值(圖 11)。

單擊 Create Keystore 按鈕。


圖 11. 創建密鑰存儲庫

成功創建密鑰存儲庫後,密鑰存儲庫將顯示在 Keystore Configuration 工具中(圖 8),相應的密鑰存儲文件將存儲在 <wasce_home>varsecuritykeystores 文件夾中。

生成密鑰

要在 Community Edition 中定義 HTTPS 連接器,您需要帶有證書的密鑰存儲庫。創建私鑰後,它將創建密鑰對和自簽署證書。您可以使用此證書將 Community Edition 配置為支持 HTTPS 訪問 Web 應用程序。

要創建新的密鑰,請執行以下操作:

單擊 Keystore configuration Portlet(圖 8)中的密鑰存儲文件名。Keystore contents Portlet(圖 12)顯示了特定密鑰存儲庫中提供的密鑰和證書。
圖 12. 密鑰存儲庫內容

選擇 Create Private Key 鏈接。

指定密鑰所需的值(如圖 13 所示,下面對這些值進行了描述),然後單擊 RevIEw Key 按鈕。
圖 13. 配置密鑰數據

Alias for new key:在密鑰存儲庫中,用於標識此密鑰對的唯一名稱。

Key Algorithm:用於生成密鑰對的私鑰算法。管理控制台僅支持 RSA。

Key Size:RSA 密鑰對模塊的長度,以位為單位。密鑰越長,密鑰對越安全。管理控制台支持的密鑰長度為 512、1024 和 2048。在我們的示例中,使用的密鑰長度為 2048。

Algorithm:用於簽名自簽名證書的簽名算法,作為密鑰對 (LINK) 練習的一部分生成。管理控制台支持 MD2withRSA、MD5withRSA 和 SHA1withRSA 簽名算法。在我們的示例中,我們使用 MD5withRSA。

Valid for (#days):指示密鑰對的有效期,用天數表示。在我們的示例中,我們使用的有效期為 180 天,約 6 個月。

Server Hostname (CN):承載 Web 應用程序的 Web 服務器的主機名,它要對 Web 客戶機的服務器進行身份驗證。例如,如果應用程序要駐留在 www.mywebsite.com 上,則使用與之相同的名稱作為公用名,這樣客戶機可以使用 http://www.mywebsite.com 或 https://www.mywebsite.com 來訪問該應用程序。在我們的示例中,我們使用 localhost 作為公用名。

Company/Organizational (O)、Division/Bussiness Unit (OU)、City/Locality (L) 和 State/Province (ST):完成這些字段來反映請求者的身份。

Country (C):請求者所在國家的雙字母 ISO 3166 國家代碼。在我們的示例中,我們使用的是 IN,它是印度的國家代碼。

當您單擊 RevIEw Key Data 按鈕時,將顯示您輸入的密鑰信息(圖 14)。
圖 14. 生成密鑰

在驗證值正確無誤後,請單擊 Generate Key 按鈕生成密鑰。

單擊 Generate Key 按鈕後,會立即生成新的私鑰,並顯示在 Keystore contents portlet 中(圖 12)。單擊生成的密鑰,將顯示與其一起創建的自簽名證書信息(圖 15)。

獲取證書頒發機構 (CA) 簽名的證書

成功生成私鑰後,您可以使用與其一起生成的自簽名證書,將 Community Edition 配置為支持 HTTPS 訪問 Web 應用程序。在生產環境中,最好使用由知名證書頒發機構 (CA)(如 VeriSign)簽名的證書。將此 CA 指定為受信任證書頒發機構的客戶機隨時接受 CA 頒發的任何證書。

在 Community Edition 中,要獲得簽名的證書,您需要使用 Keystore Configuration 工具生成 CSR,並將其發送到內部或外部 CA。CA 將驗證該請求,並頒發證書進行應答。從 CA 收到應答後,您可以將該證書導入到密鑰存儲庫。為此,請轉到 Keystore Configuration 工具的 Keystore Contents portlet(圖 12),並單擊生成的私鑰。將顯示密鑰的內容(圖 15)。


圖 15. 生成 CSR 並導入 CA 應答

在 Keystore Configuration portlet 上,單擊 Generate CSR,將使用定義 CSR 的二進制格式的 PKCS10 標准生成證書請求。將文本區域復制到文件,並將其保存為文件(如,保存為 csr.txt)。


圖 16. 生成的 CSR

接下來,您需要使用上面生成的 CSR 請求 CA 頒發證書。要請求證書,請轉到 CA 的網站,並定購證書。您需要提供在步驟 1 中獲取的 CSR(即 csr.txt 的內容),如 CA 所請求的。然後,您應從 CA 接收證書。將其保存在文件(如 ca_reply.txt)中,並確保該文件中包括“BEGIN CERTIFICATE”和“END CERTIFICATE”行,例如:

-----BEGIN CERTIFICATE-----
   The certificate contents...
----END CERTIFICATE-----

(上面的示例省略了實際證書數據。)

在本示例中,我們使用了一個內部 CA 來獲取應答,並將其粘貼到下面,以便向您展示一個完整的證書。(參見圖 17)。


圖 17. CA 應答證書

CA 為 CSR(通常為 PKCS7 編碼的證書應答)簽名證書後,需要將其導入到密鑰存儲庫,這樣,如果任何客戶機使用 CA 簽名的證書請求 Web 服務器,Web 服務器都能夠成功執行 SSL 握手。要導入密鑰存儲庫,請執行以下操作:

在 Keystore configuration 面板上單擊 Import CA reply(圖 15)。

將復制的 CA 應答粘貼到文本區域(圖 18)。

單擊 Save。
圖 18. 導入 CA 應答證書

支持 HTTPS 訪問 Web 應用程序的配置

要配置 Community Edition,以便它支持 HTTPS 訪問 Web 應用程序,您需要使用客戶機身份驗證選項創建 HTTPS 偵聽器。要完成此任務,請執行以下步驟:

從控制台右側的 Console Navigation Pane,選擇 Server 類別下的 Web Server。

選擇 Add new HTTPS Listener for Tomcat(圖 19)。


圖 19. Network Listeners portlet

指定字段值(在圖的下方對它們進行了描述),並單擊 Save 按鈕(圖 20)。


圖 20. Add new HTTPS listener for Tomcat portlet 片段

Unique Name:與服務器上任何其他 Web 連接器名稱不同的名稱。

Host:端口綁定到的主機名稱或 IP 地址。在我們的示例中為 0.0.0.0。

Port:要綁定的網絡端口。在我們的示例中,我們使用 8444,它是 HTTPS 的缺省端口。

Keystore File:保存密鑰存儲庫的文件。您可以將其指定為 var/security/keystore/SampleKeyStore,它是您前面生成的密鑰存儲庫 SampleKeyStore 的位置。

Keystore PassWord:用於訪問密鑰存儲庫文件和私鑰項的密碼。

Keystore Type:Keystore File 字段項的密鑰存儲庫類型缺省類型為 JKS。

Truststore File:保存信任存儲區的文件。在我們的示例中,將受信任證書添加到 var/security/keystore,其本身將充當信任存儲區。因此,在此字段中我們使用 var/security/keystore/SampleKeyStore。

Truststore PassWord:用於驗證 Truststore File 字段的密碼,在我們的示例中,它是 var/security/keystore 的密碼(即 secret)

Truststore Type:Truststore File 字段項的密鑰存儲庫類型。缺省類型為 JKS。

HTTPS Algorithm:HTTPS Algorithm 提供程序。通常應將其設置為與 JVM 供應商匹配。在此字段中使用 JVM Default,這樣當服務器運行在與所選值不同的 JVM 上時,不需要重新配置 HTTPS 偵聽器。

ClIEnt Auth Required:如果設置此字段,那麼通過此連接器連接的客戶機必須提供有效的客戶機證書。

在單擊 Save 按鈕時,將創建新的用於 Tomcat 的 HTTPS 偵聽器,並開始使用上面提到的配置。新的偵聽器也顯示在 Network listeners portlet 中(圖 17)。

結束語

本系列包括兩個部分,第 1 部分介紹了高級控制台功能,它使管理員能夠:

為任何數據庫創建數據庫基本池。

創建安全域,以防止未經授權的用戶訪問應用程序。

生成密鑰存儲庫和證書,將 Community Edition 配置為支持 HTTP 訪問 Web 應用程序。

此外,本文還向您介紹了 DB2 Express-C 數據庫的入門知識,並開始對其使用了命令編輯器。

第 2 部分將提供關於其他高級控制台功能的信息,其中包括線程池統計、Geronimo 插件和重新部署應用程序等。這些高級功能可以幫助您提高應用程序的可用性和可伸縮性。您還可以將應用程序或服務的完整配置導入或導出為服務器的插件。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved