

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Java 應用程式伺服器 OpsWorks 堆疊層
<a name="layers-java"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

**注意**  
此 layer 僅適用於 Linux 類型堆疊。

Java App Server layer 是 OpsWorks Stacks layer，為做為 Java 應用程式伺服器的執行個體提供藍圖。此層以 [Apache Tomcat 7.0](http://tomcat.apache.org/) 和 [Open JDK 7](http://openjdk.java.net/). OpsWorks Stacks 為基礎，也會安裝 Java 連接器程式庫，讓 Java 應用程式使用 JDBC `DataSource` 物件連線到後端資料存放區。

**Installation (安裝)**：Tomcat 安裝在 `/usr/share/tomcat7` 中。

**Add Layer (新增 Layer)** 頁面提供下列組態選項：

**Java VM 選項**  
您可以使用此設定來指定自訂 Java VM 選項；沒有預設選項。例如，一組常見選項為 `-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC`。如果您使用 **Java VM 選項**，請確定您已傳遞一組有效的選項； OpsWorks Stacks 不會驗證字串。如果您嘗試傳遞無效的選項，則通常無法啟動 Tomcat 伺服器，進而導致設定失敗。如果發生此情況，您可以檢查執行個體的設定 Chef 日誌以了解詳細資訊。如需如何檢視和解釋 Chef 日誌的詳細資訊，請參閱[Chef 日誌](troubleshoot-debug-log.md)。

**自訂安全群組**  
如果您選擇不自動將內建 OpsWorks Stacks 安全群組與 layer 建立關聯，則會顯示此設定。您必須指定要和 layer 關聯的安全群組有哪些。如需詳細資訊，請參閱[建立新的堆疊](workingstacks-creating.md)。

**Elastic Load Balancer**  
您可以將 Elastic Load Balancing 負載平衡器連接至 layer 的執行個體。如需詳細資訊，請參閱[Elastic Load Balancing Layer](layers-elb.md)。

您可以使用自訂 JSON 或自訂屬性檔案，來指定其他組態設定。如需詳細資訊，請參閱[自訂組態](layers-java-config.md)。

**重要**  
如果您的 Java 應用程式使用 SSL，則建議您盡可能停用 SSLv3 來處理 [CVE-2014-3566](http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566) 中所述的漏洞。如需詳細資訊，請參閱[停用 Apache 伺服器的 SSLv3](#layers-java-sslv3)。

**Topics**
+ [停用 Apache 伺服器的 SSLv3](#layers-java-sslv3)
+ [自訂組態](layers-java-config.md)
+ [部署 Java 應用程式](layers-java-deploy.md)

## 停用 Apache 伺服器的 SSLv3
<a name="layers-java-sslv3"></a>

若要停用 SSLv3，您必須修改 Apache 伺服器之 `ssl.conf` 檔案的 `SSLProtocol` 設定。若要這麼做，您必須覆寫內建 [apache2 技術指南的](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/apache2)`ssl.conf.erb`範本檔案，Java App Server 層的設定配方會使用此檔案來建立 `ssl.conf`。詳細資訊取決於您針對 layer 執行個體所指定的作業系統。以下摘要說明 Amazon Linux 和 Ubuntu 系統所需的修改。會自動停用 Red Hat Enterprise Linux (RHEL) 系統的 SSLv3。如需如何覆寫內建範本的詳細資訊，請參閱[使用自訂範本 ](workingcookbook-template-override.md)。

**Amazon Linux**  
這些作業系統的 `ssl.conf.erb` 檔案位於 `apache2` 技術指南的 `apache2/templates/default/mods` 目錄中。以下顯示內建檔案的相關部分。  

```
...
#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

# enable only secure protocols: SSLv3 and TLSv1.2, but not SSLv2
SSLProtocol all -SSLv2
</IfModule>
```
覆寫 `ssl.conf.erb` 和修改 `SSLProtocol` 設定，如下所示。  

```
...
#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

# enable only secure protocols: SSLv3 and TLSv1.2, but not SSLv2
SSLProtocol all -SSLv3 -SSLv2
</IfModule>
```

**Ubuntu 14.04 LTS**  
此作業系統的 `ssl.conf.erb` 檔案位於 `apache2` 技術指南的 `apache2/templates/ubuntu-14.04/mods` 目錄中。以下顯示內建檔案的相關部分。  

```
...
# The protocols to enable.
# Available values: all, SSLv3, TLSv1.2
# SSL v2 is no longer supported
SSLProtocol all
...
```
請將此設定變更為下列內容。  

```
...
# The protocols to enable.
# Available values: all, SSLv3, TLSv1.2
# SSL v2 is no longer supported
SSLProtocol all -SSLv3 -SSLv2
...
```