win7 64位下配置http2+nginx+nodeJS
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最近要调研http2能给页面带来多少访问速度的提升,所以自己先搭一个环境测试一下;
一、CA数字证书:
要升级http2首先是要把http升级到https,https升级就需要CA证书,但由于现代的浏览器都已默认安装了一些网络证书,所以我们访问淘宝,京东之类的网站就不需要让用户自己安装了,其它没有安装的证书就得用户自己得去安装了;
现在网络上的很多https证书,有免费的也有付费的,但作为我是用于自己调试与测试用,当然找免费的了,但免费的证书需要申请与审核,时间也是得等,加上功能上也有限制,好吧,我是迫不及待的用证书,来调试,最后找到
了OpenSSL,自己来创建证书,省去申请的时间,那现在就说说OpenSSL如何创建一个ca证书,服务器证书与客户端证书;
安装准备:
下载OpenSSL我用的版本是openssl-1.1.0
下载安装ActivePerl最新版本即可;
下载安装nasm最新版本即可;
下载安装Visual Studio 2015 自己上度娘找吧,很多;
先把OpenSSL解压到E盘,目录名称为openssl-1.1.0;
点击开始按钮,选择Visual Studio Tools 下的64位编译机,定位到
E://openssl-1.1.0
输入命令:
//初始化文件目录
$ perl Configure VC-WIN64A --prefix=E:/openssl-1.1.0/win64_OpenSSL --ope nssldir=E:/openssl-1.1.0/win64_SSL
$ nmake
$ nmake test
$ nmake install
注意,以上的安装方法一定要参考该版本的安装方法,这个安装方法的文件一般叫INSTALL,网上有很多方法,都是老版本来的;
生成密钥、证书
第一步,为服务器端和客户端准备公钥、私钥
# 生成服务器端私钥
genrsa -out server.key 1024
# 生成服务器端公钥
rsa -in server.key -pubout -out server.pem
# 生成客户端私钥
genrsa -out client.key 1024
# 生成客户端公钥
rsa -in client.key -pubout -out client.pem
第二步,生成CA 证书
# 生成CA私钥
genrsa-outca.key 1024
# X.509CertificateSigningRequest (CSR) Management.
req-config "E:\openssl-1.1.0\win64_SSL\f" -new-keyca.key-outca. csr
# X.509CertificateDataManagement.
x509-req-inca.csr-signkeyca.key-outca.crt
CountryName (2 lettercode) [AU]:CH
StateorProvinceName (fullname) [Some-State]:Guangdong Province
LocalityName (eg, city) []:Guangzhou
OrganizationName (eg, company) [Internet Widgits Pty Ltd]:
OrganizationalUnitName (eg, section) []:IT
# 这里是写你的服务器域名
CommonName (e.g. serverFQDNorYOURname) []:*
EmailAddress[]:********@****.net
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:JINJIN
第三步,生成服务器端证书和客户端证书(注:每次生成完csr与crt 要把命令工具关闭重新打开,否则报错)
# 服务器端需要向CA机构申请签名证书,在申请签名证书之前依然是创建自己的CSR文件
req-config "E:\openssl-1.1.0\win64_SSL\f" -new-keyserver.key-o utserver.csr
# 向自己的CA机构申请证书,签名过程需要CA的证书和私钥参与,最终颁发一个带有CA 签名的证书
x509-req-CAca.crt-CAkeyca.key-CAcreateserial-inserver.csr-outserver.crt
# 其它参考上面的,唯一区别这就句
OrganizationName (eg, company) [Internet Widgits Pty Ltd]:
# 向自己的CA机构申请证书,签名过程需要CA的证书和私钥参与,最终颁发一个带有CA 签名的证书
x509-req-CAca.crt-CAkeyca.key-CAcreateserial-inserver.csr-outserver.crt
# client端到CA签名
x509-req-CAca.crt-CAkeyca.key-CAcreateserial-inclient.csr-outclient.crt
# 其它参考上面的,唯一区别这就句
OrganizationName (eg, company) [Internet Widgits Pty Ltd]: 生成后的文件如下:
二、nginx配置:
首先先下载一个nginx的稳定版本 1.10.1;
由于windows下的nginx是默认没有开通http_v2_module模块,即http2.0模块,如果要开启这个模块就得自己重新编译一个新nginx.exe文件,下面就来介绍如何生成一个支持http2.0的nginx;