快速搭建本地HTTP/2服务

栏目: 服务器 · Nginx · 发布时间: 7年前

内容简介:2015年5月HTTP/2 标准协议正式发布后,已得到绝大部分的浏览器的支持,但截止发文时使用的网站占比还不到1/3。 本文目的是为了快速搭建一个本地各参数可以查看其中

2015年5月HTTP/2 标准协议正式发布后,已得到绝大部分的浏览器的支持,但截止发文时使用的网站占比还不到1/3。 本文目的是为了快速搭建一个本地 HTTP/2 服务,以供研发小伙伴开发测试,从而加深对 HTTP/2 的理解。

环境

  1. OpenSSL : 1.0.2q
  2. Nginx : 1.15.7

步骤

  1. 生成本地根证书:
# 使用AES256-bit编码加密生成4096位的根秘钥
openssl genrsa -aes256 -out rootCA.key 4096

Enter pass phrase for rootCA.key: password
Verifying - Enter pass phrase for rootCA.key: password
复制代码

各参数可以查看 man ca 或者 查阅这里。

# 使用根秘钥生成根证书
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

Enter pass phrase for rootCA.key: password
You are about to be asked to enter information that will be incorporated
...
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Lovecoding.org
Organizational Unit Name (eg, section) []:Lovecoding CA
Common Name (e.g. server FQDN or YOUR name) []:Lovecoding ROOT CA
Email Address []:
Generating a RSA private key
复制代码
  1. 生成本地自签证书
#生成自签秘钥
openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config server.csr.cnf

#生成自签证书
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 600 -sha256 -extfile v3.ext
复制代码

其中 server.csr.cnf :

[ req ]
default_bits       = 2048
prompt             = no
default_md         = sha256
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
C            = CN
ST           = Beijing
L            = Beijing
O            = MyOrganization
OU           = MyOrganizationUnit
emailAddress = lovecoding@example.com
CN           = localhost
复制代码

v3.ext :

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName=@alt_names

[alt_names]
DNS.1=localhost
复制代码
  1. 配置nginx

server.crtserver.key 添加到nginx:

server {
        listen [::]:443 ssl http2 ipv6only=on;
        listen 443 ssl http2;
        ssl_certificate /etc/nginx/certs/server.crt;
        ssl_certificate_key /etc/nginx/certs/server.key;
        ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers           HIGH:!aNULL:!MD5;
        ssl_session_cache     shared:SSL:1m;

        server_name localhost;
        ...
复制代码

重启nginx:

sudo nginx -t
sudo nginx -s reload
复制代码
  1. 信任自签证书

首次打开网页时,会提示证书无效,那么将自签的证书加入信任列表即可:

  • Mac OS
sudo security add-trusted-cert -d -r trustAsRoot -k /Library/Keychains/System.keychain server.crt
复制代码
  • Ubuntu :
sudo cp server.crt /usr/local/share/ca-certificates/server.crt
sudo update-ca-certificates
复制代码

其他系统可以查阅这里。

此时打开浏览器可以看到:

快速搭建本地HTTP/2服务

说明自签证书已有效,并支持 HTTP/2 服务。

总结

本文介绍了本地快速搭建 HTTP/2 服务,希望对研发伙伴有所帮助。目前所有代码都已放到 local-http2 ,喜欢的同学可以 Star :)。 还有HTTP/3草案已出,感兴趣的可以了解一下。

参考


以上所述就是小编给大家介绍的《快速搭建本地HTTP/2服务》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

新零售进化论

新零售进化论

陈欢、陈澄波 / 中信出版社 / 2018-7 / 49.00

本书主要介绍了新零售的进化现象和规律,提出了新零售的第一性原理是物理数据二重性,即在新零售时代,所有的人、货、场既是物理的也是数据的。 通过这个原点,进一步衍生出了新零售的八大核心算法,并用大量的辅助观点和新零售案例来揭示新零售背后的算法逻辑。 综合一系列的理论推演和案例讲解,作者重点回答了以下3个问题: ● 我们是行业的强者,如果跟不上新零售的潮流,会不会被淘汰? ● 我......一起来看看 《新零售进化论》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具