基本流程
go get -u -d github.com/devsisters/goquic
GOQUIC_BUILD=Release ./build_libs.sh
編譯問(wèn)題
由于沒(méi)有njnia需要修改build_libs.sh文件中的以下部分
cd libquic/$BUILD_DIR
cmake -GNinja $OPT ../..
cd -
ninja -Clibquic/$BUILD_DIR
------------------------------
cd libquic/$BUILD_DIR
cmake $OPT ../..
make -j4
cd -
編譯客戶端/服務(wù)端
go build example/server.go
go build example/client.go
運(yùn)行程序
./server -cert ssl.crt -key ssl.key -loglevel 0 -root /root/html/
./client -url http://127.0.0.1:8080/files/1M -loglevel 0
問(wèn)題
goquic自帶的client中有對(duì)證書進(jìn)行校驗(yàn)砰嘁,由于測(cè)試時(shí)證書是本地生成/簽名的谷遂,因此會(huì)有校驗(yàn)失敗的報(bào)錯(cuò)宋下。
[root@vps goquic]# ./client -url http://127.0.0.1:8080/
2016/10/20 12:14:24 Verify failedx509: certificate signed by unknown authority
解決方法
client中注釋掉證書校驗(yàn)部分代碼缺亮,重新編譯client蜗字。
-- /tmp/proof_verifier.go 2016-10-20 12:23:32.500833827 +0900
+++ ./proof_verifier.go 2016-10-20 12:23:44.585835315 +0900
@@ -107,6 +107,7 @@
intmPool.AddCert(certs[i])
}
+ /*
verifyOpt := x509.VerifyOptions{
DNSName: string(job.hostname),
Intermediates: intmPool,
@@ -115,6 +116,7 @@
log.Fatal("Verify failed", err)
return false
}
+ */
return true
}