[TOC]
## 說明
本次 HTTP2.0 基于 Tomcat 進行測試,系統環境為windows,Linux系統可自行百度解決
## 1. 安裝、配置 jdk
### 1.1 在官網中下載安裝需要安裝的版本
[https://www.oracle.com/technetwork/java/javase/downloads/index.html](https://www.oracle.com/technetwork/java/javase/downloads/index.html)
>[warning] tips: `Tomcat8.5 +` 需要 `java7 +`支持; `Tomcat9.0 +` 需要 `java8 +`支持
### 1.2 配置環境變量
可自行百度解決
安裝檢測:命令行輸入: `java -version`,`enter` 查看版本號
## 2. 安裝 OpenSSL、生成偽證書
### 2.1 安裝包下載
windows 版本下載地址: [http://slproweb.com/products/Win32OpenSSL.html](http://slproweb.com/products/Win32OpenSSL.html),版本限制 `1.0.2 +`,將文件包解壓縮到可以通常軟件安裝位置
### 2.2 生成證書
在 OpenSSL 安裝包內 `shift + 右鍵` 打開命令行
~~~
// 生成一個RSA私鑰
# openssl genrsa -des3 -out server.ori.key 2048
.... // 自行加密,密碼會用于下面
// 生成免密碼輸入key
# openssl rsa -in server.ori.key -out server.key
// 創建證書簽名請求CSR文件
# openssl req -new -key server.key -out server.csr
... // 填寫一些信息,可隨意填寫,但請記住填寫的內容
// 制作CA證書
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
// 所有操作完成后會生成四個文件: server.crt、server.csr、server.key、server.ori.key
~~~
## 3. 安裝、配置 Tomcat
### 3.1 安裝包下載
[https://tomcat.apache.org/](https://tomcat.apache.org/)(請下載 `Tomcat8.5 +` ,8.5 以下不支持 `http2`),將文件包解壓縮到可以通常軟件安裝位置
### 3.2 配置環境變量
可自行百度解決
安裝檢測:命令行輸入:`startup.bat`,`enter` 即可運行 Tomcat,打開瀏覽器鍵入url:`http://localhost:8080/`,測試 Tomcat 是否運行成功
### 3.3 關于 Tomcat 命令行顯示亂碼問題

1. 打開 Tomcat 安裝目錄(文件包解壓存放位置)

2. 打開 conf 文件夾,打開 `logging.properties`文件,`ctrl + f` 組合鍵快速查找 `java.util.logging.ConsoleHandler.encoding = UTF-8` ,更改 `UTF-8` 為 `GBK`,保存后關閉,重啟 Tomcat 即可

### 3.4 配置 Tomcat 支持 HTTP2.0
* 打開配置文件夾 `conf` (不同版本可能名稱不同,但認準為配置文件夾即可)

* 將第二步中生成的證書、秘鑰等四個文件拷貝到配置文件夾 `conf` 內
* 編輯 `server.xml` : 找到 被注釋掉的 `http2` 板塊,并將其放開,將證書文件名稱替換為放置在配置文件夾內的文件名稱
~~~
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<!-- 更改證書文件名稱 -->
<Certificate certificateKeyFile="conf/server.key"
certificateFile="conf/server.crt"
type="RSA" />
</SSLHostConfig>
</Connector>
~~~
### 3.5 配置完成,測試
關閉之前測試時打開的 `Tomcat` ,命令行方式重新啟動,在瀏覽器中,輸入 `https://localhost:8443` ,在輸出日志文件夾 `logs` 中 `localhost_access_log.` 即可查看本次 `http` 請求信息。

>[success] tips: 此時,在本地服務器中 8080 端口依然為 http1.1 協議,只有 8443 端口支持 http2.0 協議;