[TOC]
## 說明
本次 HTTP2.0 基于 nginx 進行測試,系統環境為windows,Linux系統可自行百度解決
## 1. 安裝OpenSSL、生成偽證書
### 1.1 安裝包下載
windows版本下載地址: [http://slproweb.com/products/Win32OpenSSL.html](http://slproweb.com/products/Win32OpenSSL.html),版本限制 `1.0.2 +`,將文件包解壓縮到可以通常軟件安裝位置
### 1.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
~~~
## 2. 安裝、配置 nginx
### 2.1 安裝包下載
[http://nginx.org/en/download.html](http://nginx.org/en/download.html)(請下載 `nginx-1.9.5 +` ,1.9.5 以下不支持 `http2` ),將文件包解壓縮到可以通常軟件安裝位置,打開安裝包解壓后文件夾,雙擊 `nginx.exe` 文件即可運行 nginx ,瀏覽器中輸入地址 `localhost` ,即可測試安裝是否成功
### 2.2 配置 nginx 支持 HTTP2.0
* 打開配置文件夾 `conf` (不同版本可能名稱不同,但認準為配置文件夾即可)

* 將第一步中生成的證書、秘鑰等四個文件拷貝到配置文件夾 `conf` 內的 `key` 文件夾

* 編輯 `nginx.conf` : 找到 被注釋掉的 `http2` 板塊,并將其放開,添加 http2 支持,將證書文件名稱替換為放置在配置文件夾內的文件名稱
~~~
# HTTPS server
#
server {
listen 443 ssl http2;
server_name localhost;
# key and crt
ssl_certificate key/server.crt;
ssl_certificate_key key/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
~~~
### 2.3 配置完成,測試
關于 nginx 運行、停止的一些指令:
```
start nginx // 啟動
nginx -s quit // 退出運行
nginx -s stop // 停止運行
nginx -s reload // 重新啟動
以上指令需要在安裝包文件夾內運行才可,若想簡單關閉 nginx ,可直接打開任務管理器,找到 nginx 運行任務并結束任務即可
```
關閉之前測試時打開的 `nginx` ,重新啟動,在瀏覽器中,輸入 `https://localhost` 在輸出日志文件夾 `logs` 中 `access.log` 或 `error.log` 即可查看本次 `http` 請求信息。