当前位置: 首页 > news >正文

网站建设可以抵扣吗万州集团网站建设

网站建设可以抵扣吗,万州集团网站建设,hao123网址之家,驻马店360网站建设文章目录 前言生成证书申请免费的证书使用Go语言生成自签CA证书 https的客户端和服务端服务端代码客户端代码 tls的客户端和服务端服务端客户端 前言 在公网中#xff0c;我想加密传输的数据。(1)很自然#xff0c;我想到了把数据放到http的请求中#xff0c;然后通过tls确… 文章目录 前言生成证书申请免费的证书使用Go语言生成自签CA证书 https的客户端和服务端服务端代码客户端代码 tls的客户端和服务端服务端客户端 前言 在公网中我想加密传输的数据。(1)很自然我想到了把数据放到http的请求中然后通过tls确保数据安全。(2)更进一步只要数据可以解析则无需http协议直接通过tls协议加密传输即可。本文分别尝试了这两个方案。 尝试实现方案之前我们考虑需要实现哪些内容。(1)如何获取证书。(2)golang中如何实现一个https的客户端和服务器。(3)golang中如何实现一个tls的客户端和服务器。(4)http的request和response的构建,发送和解析。(5)对于客户端, 应用层(http)是否应该复用网络层(tcp)的连接; 哪些需求下不能复用; (6)不考虑传输层的网络细节。 注本文不涉及相关内容的背景知识介绍。本文完整代码见仓库。 生成证书 如果有已经购买的域名可以申请一个免费的通配符证书便于日常使用。 没有域名的话可以通过命令行生成证书见windows和linux上证书的增删查。也可以通过go代码来创建证书。 申请免费的证书 首先是安装acme.sh sudo apt-get -y install socatda1234caovultr:~$ curl https://get.acme.sh | sh -s emailda1234cao163.com% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 1032 0 1032 0 0 4384 0 --:--:-- --:--:-- --:--:-- 4410% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 216k 100 216k 0 0 715k 0 --:--:-- --:--:-- --:--:-- 715k [Fri Aug 11 06:17:18 AM UTC 2023] Installing from online archive. [Fri Aug 11 06:17:18 AM UTC 2023] Downloading https://github.com/acmesh-official/acme.sh/archive/master.tar.gz [Fri Aug 11 06:17:19 AM UTC 2023] Extracting master.tar.gz [Fri Aug 11 06:17:19 AM UTC 2023] Installing to /home/da1234cao/.acme.sh [Fri Aug 11 06:17:19 AM UTC 2023] Installed to /home/da1234cao/.acme.sh/acme.sh [Fri Aug 11 06:17:19 AM UTC 2023] Installing alias to /home/da1234cao/.bashrc [Fri Aug 11 06:17:19 AM UTC 2023] OK, Close and reopen your terminal to start using acme.sh [Fri Aug 11 06:17:19 AM UTC 2023] Installing cron job 8 0 * * * /home/da1234cao/.acme.sh/acme.sh --cron --home /home/da1234cao/.acme.sh /dev/null [Fri Aug 11 06:17:19 AM UTC 2023] Good, bash is found, so change the shebang to use bash as preferred. [Fri Aug 11 06:17:20 AM UTC 2023] OK [Fri Aug 11 06:17:20 AM UTC 2023] Install success!为了使用方便我这里申请一个泛域名证书。我的域名是在阿里云购买的所以本文仅尝试获取阿里云的泛域名证书。 参考阿里云域名使用ACME自动申请免费的通配符https域名证书、acme.sh 使用泛域名|阿里云DNS |免费申请证书。 大概过程是AccessKey管理-创建子用户-允许open API访问-添加DNS管理权限。将获取到的AccessKey 和 Secret 写到acme.sh.env配置文件里面。 export Ali_Key***** export Ali_Secret*******执行source ~/.bashrc。 然后开始申请证书。 sudo ufw status sudo ufw allow 80# --debug 参数查看执行过程 # 没有web服务,80端口空闲, acme.sh 还能假装自己是一个webserver, 临时听在80 端口, 完成验证 ## 如果执行报错;稍等等会再尝试; acme.sh --issue --dns dns_ali -d *.da1234cao.top --standalone --debug[Fri Aug 11 07:07:43 AM UTC 2023] Your cert is in: /home/da1234cao/.acme.sh/*.da1234cao.top_ecc/*.da1234cao.top.cer [Fri Aug 11 07:07:43 AM UTC 2023] Your cert key is in: /home/da1234cao/.acme.sh/*.da1234cao.top_ecc/*.da1234cao.top.key [Fri Aug 11 07:07:43 AM UTC 2023] The intermediate CA cert is in: /home/da1234cao/.acme.sh/*.da1234cao.top_ecc/ca.cer [Fri Aug 11 07:07:43 AM UTC 2023] And the full chain certs is there: /home/da1234cao/.acme.sh/*.da1234cao.top_ecc/fullchain.cer [Fri Aug 11 07:07:43 AM UTC 2023] _on_issue_success# 查看证书信息 openssl x509 -noout -text -in *.da1234cao.top.cerSignature Algorithm: ecdsa-with-SHA384Issuer: C AT, O ZeroSSL, CN ZeroSSL ECC Domain Secure Site CAValidityNot Before: Aug 11 00:00:00 2023 GMTNot After : Nov 9 23:59:59 2023 GMTSubject: CN *.da1234cao.top -----# 查看key信息 openssl ec -noout -text -in *.da1234cao.top.key read EC key Private-Key: (256 bit)使用Go语言生成自签CA证书 这里有比较详细的介绍使用Go语言生成自签CA证书 package certificateimport (crypto/randcrypto/rsacrypto/x509crypto/x509/pkixencoding/pemio/ioutilmath/bigtime )func Gencertificate(output string) error {// ref: https://foreverz.cn/go-cert// 生成私钥priv, err : rsa.GenerateKey(rand.Reader, 2048)if err ! nil {return err}// x509证书内容var csr x509.Certificate{Version: 3,SerialNumber: big.NewInt(time.Now().Unix()),Subject: pkix.Name{Country: []string{CN},Province: []string{Shanghai},Locality: []string{Shanghai},Organization: []string{httpsDemo},OrganizationalUnit: []string{httpsDemo},CommonName: da1234cao.top,},NotBefore: time.Now(),NotAfter: time.Now().AddDate(1, 0, 0),BasicConstraintsValid: true,IsCA: false,KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageKeyEncipherment,ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},}// 证书签名certDer, err : x509.CreateCertificate(rand.Reader, csr, csr, priv.Public(), priv)if err ! nil {return err}// 二进制证书解析interCert, err : x509.ParseCertificate(certDer)if err ! nil {return err}// 证书写入文件pemData : pem.EncodeToMemory(pem.Block{Type: CERTIFICATE,Bytes: interCert.Raw,})if err ioutil.WriteFile(outputcert.pem, pemData, 0644); err ! nil {panic(err)}// 私钥写入文件keyData : pem.EncodeToMemory(pem.Block{Type: EC PRIVATE KEY,Bytes: x509.MarshalPKCS1PrivateKey(priv),})if err ioutil.WriteFile(outputkey.pem, keyData, 0644); err ! nil {return err}return nil }https的客户端和服务端 轮子已经有了,net/http。我没有看到net/http很好的入门教程。只能看下官方文档网上翻翻一些简单的示例。 下面是一个示例。其中必须一提的是http请求结束后连接可以仍然存在放到闲置的连接池中。便于后续请求复用之前的连接。我到源码里面去看了下没太看懂可见Golang Http RoundTrip解析。 服务端代码 启动服务端后对于/reflect路径的request构建一个response。注意其中的header和body内容的填充。 func reflect(w http.ResponseWriter, r *http.Request) {log.Println(handle reflect)w.Header().Set(Content-Type, text/plain; charsetutf-8)w.WriteHeader(http.StatusOK)bodyByte, _ : io.ReadAll(r.Body)log.Println(recv:, string(bodyByte))w.Write(bodyByte) }func Start() error {listenPort : Conf.ListenPortlistenIp : Conf.ListenIpif listenPort 0 || listenPort 65535 {log.Println(invalid listen port:, listenPort)return errors.New(invalid listen port)}http.HandleFunc(/reflect, reflect)err : http.ListenAndServeTLS(listenIp:strconv.Itoa(listenPort), Conf.Protocol.Https.Certificate, Conf.Protocol.Https.Key, nil)return err }客户端代码 客户端可以选择是否验证服务端的证书。验证证书不重要因为我信任这个域名解析过程(如果DNS没有被污染的话)。数据可以加密传输即可。代码中使用http.NewRequest构建一个请求然后通过http.Client.Do发送请求(可能会复用之前的连接)。 func New() *http.Client {cli : http.Client{Transport: http.Transport{TLSClientConfig: tls.Config{InsecureSkipVerify: Conf.SkipVerify},},}return cli }func DoRequest(cli *http.Client, data []byte) (*http.Response, error) {req, err : http.NewRequest(POST, Conf.Protocol://Conf.ServerIp:strconv.Itoa(Conf.ServerPort)/reflect, bytes.NewBuffer(data))if err ! nil {log.Println(fail to consstruct request, err)}return cli.Do(req) }func PrintResponse(resp *http.Response, err error) {if err nil {if resp.StatusCode http.StatusOK {body, _ : ioutil.ReadAll(resp.Body)log.Print(string(body))}log.Println(http status code:, resp.StatusCode)} else {log.Print(err)} }tls的客户端和服务端 当我们的应用层不需要http协议只需要对应用层的数据进行加密传输。我们尝试下面的代码(下面代码中我手动构建了http的request和response,是为了保证接收到完整的数据后再处理,仅此而已)。 使用的库是crypto/tls 服务端 func TLSDataHandle(conn net.Conn) {for {// 读取requestioBuf : bufio.NewReader(conn)req, err : http.ReadRequest(ioBuf)if err ! nil {log.Println(err)return}defer req.Body.Close()defer conn.Close()bodyByte, _ : io.ReadAll(req.Body)log.Println(recv: , string(bodyByte))// 构建一个responsebuf : bytes.NewBuffer(nil)buf.WriteString(HTTP/1.1 200 OK\r\n)buf.WriteString(Content-Length: strconv.Itoa(len(bodyByte)) \r\n)buf.WriteString(\r\n)buf.Write(bodyByte)// 发送responsebuf.WriteTo(conn)} }func TLSStart() error {listenPort : Conf.ListenPortlistenIp : Conf.ListenIpif listenPort 0 || listenPort 65535 {log.Println(invalid listen port:, listenPort)return errors.New(invalid listen port)}cert, err : tls.LoadX509KeyPair(Conf.Protocol.Https.Certificate, Conf.Protocol.Https.Key)if err ! nil {log.Println(fail to laod x509 key pair, err)}config : tls.Config{Certificates: []tls.Certificate{cert}}listener, _ : tls.Listen(tcp, listenIp:strconv.Itoa(listenPort), config)for {conn, _ : listener.Accept()go TLSDataHandle(conn)} }客户端 func NewTlsConn() (net.Conn, error) {config : tls.Config{InsecureSkipVerify: Conf.SkipVerify}return tls.Dial(tcp, Conf.ServerIp:strconv.Itoa(Conf.ServerPort), config) }func SendRequest(conn net.Conn, data []byte) {// 构造一个请求buf : bytes.NewBuffer(nil)buf.WriteString(POST /no_thing)buf.WriteString( HTTP/1.1\r\n)buf.WriteString(Content-Length: strconv.Itoa(len(data)) \r\n)buf.WriteString(\r\n)buf.Write(data)// 发送请求buf.WriteTo(conn)// 读取回复ioBuf : bufio.NewReader(conn)res, err : http.ReadResponse(ioBuf, nil)if err ! nil {log.Println(err)return}defer res.Body.Close()bodyByte, _ : io.ReadAll(res.Body)log.Println(string(bodyByte)) }
文章转载自:
http://www.morning.jhswp.cn.gov.cn.jhswp.cn
http://www.morning.dyfmh.cn.gov.cn.dyfmh.cn
http://www.morning.c7623.cn.gov.cn.c7623.cn
http://www.morning.lizimc.com.gov.cn.lizimc.com
http://www.morning.cgtrz.cn.gov.cn.cgtrz.cn
http://www.morning.nqnqz.cn.gov.cn.nqnqz.cn
http://www.morning.gsyns.cn.gov.cn.gsyns.cn
http://www.morning.mggwr.cn.gov.cn.mggwr.cn
http://www.morning.ksqzd.cn.gov.cn.ksqzd.cn
http://www.morning.hyyxsc.cn.gov.cn.hyyxsc.cn
http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn
http://www.morning.spwln.cn.gov.cn.spwln.cn
http://www.morning.wbxr.cn.gov.cn.wbxr.cn
http://www.morning.mbprq.cn.gov.cn.mbprq.cn
http://www.morning.pdgqf.cn.gov.cn.pdgqf.cn
http://www.morning.hksxq.cn.gov.cn.hksxq.cn
http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn
http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn
http://www.morning.qineryuyin.com.gov.cn.qineryuyin.com
http://www.morning.ntgjm.cn.gov.cn.ntgjm.cn
http://www.morning.nwclg.cn.gov.cn.nwclg.cn
http://www.morning.mpsnb.cn.gov.cn.mpsnb.cn
http://www.morning.dddcfr.cn.gov.cn.dddcfr.cn
http://www.morning.psdsk.cn.gov.cn.psdsk.cn
http://www.morning.kxgn.cn.gov.cn.kxgn.cn
http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn
http://www.morning.txtgy.cn.gov.cn.txtgy.cn
http://www.morning.mwjwy.cn.gov.cn.mwjwy.cn
http://www.morning.wqpm.cn.gov.cn.wqpm.cn
http://www.morning.lrzst.cn.gov.cn.lrzst.cn
http://www.morning.mfmx.cn.gov.cn.mfmx.cn
http://www.morning.prprz.cn.gov.cn.prprz.cn
http://www.morning.mnbgx.cn.gov.cn.mnbgx.cn
http://www.morning.jjxnp.cn.gov.cn.jjxnp.cn
http://www.morning.rdxp.cn.gov.cn.rdxp.cn
http://www.morning.gqfbh.cn.gov.cn.gqfbh.cn
http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn
http://www.morning.ghfrb.cn.gov.cn.ghfrb.cn
http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn
http://www.morning.pwgzh.cn.gov.cn.pwgzh.cn
http://www.morning.yprnp.cn.gov.cn.yprnp.cn
http://www.morning.llqky.cn.gov.cn.llqky.cn
http://www.morning.xrrbj.cn.gov.cn.xrrbj.cn
http://www.morning.clkjn.cn.gov.cn.clkjn.cn
http://www.morning.nkpls.cn.gov.cn.nkpls.cn
http://www.morning.mltsc.cn.gov.cn.mltsc.cn
http://www.morning.nlrxh.cn.gov.cn.nlrxh.cn
http://www.morning.hlnrj.cn.gov.cn.hlnrj.cn
http://www.morning.mxhys.cn.gov.cn.mxhys.cn
http://www.morning.qmsbr.cn.gov.cn.qmsbr.cn
http://www.morning.ntwfr.cn.gov.cn.ntwfr.cn
http://www.morning.rkfwr.cn.gov.cn.rkfwr.cn
http://www.morning.nbnq.cn.gov.cn.nbnq.cn
http://www.morning.ddtdy.cn.gov.cn.ddtdy.cn
http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn
http://www.morning.ydrml.cn.gov.cn.ydrml.cn
http://www.morning.yqpzl.cn.gov.cn.yqpzl.cn
http://www.morning.dmwbs.cn.gov.cn.dmwbs.cn
http://www.morning.mslsn.cn.gov.cn.mslsn.cn
http://www.morning.jcyrs.cn.gov.cn.jcyrs.cn
http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com
http://www.morning.qykxj.cn.gov.cn.qykxj.cn
http://www.morning.gthc.cn.gov.cn.gthc.cn
http://www.morning.yqjjn.cn.gov.cn.yqjjn.cn
http://www.morning.kkzwn.cn.gov.cn.kkzwn.cn
http://www.morning.ghqyr.cn.gov.cn.ghqyr.cn
http://www.morning.bdwqy.cn.gov.cn.bdwqy.cn
http://www.morning.diuchai.com.gov.cn.diuchai.com
http://www.morning.mrxgm.cn.gov.cn.mrxgm.cn
http://www.morning.pamdeer.com.gov.cn.pamdeer.com
http://www.morning.mjtgt.cn.gov.cn.mjtgt.cn
http://www.morning.cytr.cn.gov.cn.cytr.cn
http://www.morning.rytps.cn.gov.cn.rytps.cn
http://www.morning.wxfgg.cn.gov.cn.wxfgg.cn
http://www.morning.flpjy.cn.gov.cn.flpjy.cn
http://www.morning.ndtmz.cn.gov.cn.ndtmz.cn
http://www.morning.nzfjm.cn.gov.cn.nzfjm.cn
http://www.morning.mtdfn.cn.gov.cn.mtdfn.cn
http://www.morning.nhzxd.cn.gov.cn.nhzxd.cn
http://www.morning.nzzws.cn.gov.cn.nzzws.cn
http://www.tj-hxxt.cn/news/274951.html

相关文章:

  • 重庆网上找工作哪个网站好网站备案 网站
  • 宝安公司网站建设比较好的响应式网站模板 开源
  • 自己做的网站如何上传大数据平台是什么
  • 建设厅三类人员网站怎样查网站有没有备案
  • 长沙网站建设去哪好如何制作一个自己的网页
  • 宁波品牌网站建设新手建网站需要怎么做呢
  • 做金融网站违法吗网站建设制作软件
  • 企业站seo网站收录查询网
  • 做网站的时候怎么设置背景中国建筑查询网
  • 企业门户网站建设管理制度镇江网站seo
  • 苏州高端做网站怎么做属于自己的网址
  • 手机 网站服务器使用nas服务器建设网站
  • 上海高端网站广州最新重大新闻
  • 网站服务器怎么更换学校网站怎么做推广
  • 网站导购话术湖州网站建设有哪些
  • 会python做网站福清建设局网站
  • 公司网站备案需要哪些网站后台有显示前台没有
  • 网站开发公司交易流程重庆秀山网站建设公司
  • 携程网站建设状况杭州电子商务网站开发
  • 制作商城网站模板php网站建设填空题
  • 社交网站的设计wordpress 4.8.2中文
  • wordpress个人网站赚钱创建大型网站
  • 平台开发多少钱优化网站平台
  • 技术支持 广州网站建设网站开发代码h5
  • 网站 建设平台分析报告网站建设教程试题
  • 后台网站设计淘宝运营学习
  • 企业网站平台如何做网络推广网站建设销售简历
  • 做企业内刊有哪些网站推荐看不到的网站
  • 宝盒 网站wordpress怎么发布文章
  • 蛋糕 网站 模板企业邮箱腾讯登录入口