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

制作网站作业wordpress页面混乱

制作网站作业,wordpress页面混乱,常平镇网站仿做,怎么创立一个自己的品牌文章目录 证书的SCT列表验证SCT依赖包加载证书初始化log机构信息离线验证在线验证 证书的SCT列表 浏览器对证书链的合法性检查通过后#xff0c;会再检查服务端证书附件里的SCT列表#xff08;Signed Certificate Timestamp#xff09;#xff1b; 浏览器内置了一批certif… 文章目录 证书的SCT列表验证SCT依赖包加载证书初始化log机构信息离线验证在线验证 证书的SCT列表 浏览器对证书链的合法性检查通过后会再检查服务端证书附件里的SCT列表Signed Certificate Timestamp 浏览器内置了一批certificate transparency log机构的公钥和访问地址如果SCT申明证书在某个log机构注册了但是SCT里的签名通过不了log机构的公钥验证则抛出错误NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED 验证SCT 依赖包 使用github.com/google/certificate-transparency-go工具 import (contextencoding/base64encoding/pemerrorsiolognet/httpostimect github.com/google/certificate-transparency-gogithub.com/google/certificate-transparency-go/ctutilgithub.com/google/certificate-transparency-go/loglist3ctX509 github.com/google/certificate-transparency-go/x509github.com/google/certificate-transparency-go/x509util )加载证书 假设服务端证书以及签发该证书的上级CA证书已保存为PEM格式的文件 func VerifySCT(certLocation string, issuerLocation string) error {// 服务端证书certByte, err : os.ReadFile(certLocation)if err ! nil {return err}block, _ : pem.Decode(certByte)if block nil || len(block.Bytes) 0 {return errors.New(error decoding certificate)}cert, err : ctX509.ParseCertificate(block.Bytes)if err ! nil {return err}// 上级CAcertByte, _ os.ReadFile(issuerLocation)block, _ pem.Decode(certByte)if block nil || len(block.Bytes) 0 {return errors.New(error decoding issuer CA)}issuer, _ : ctX509.ParseCertificate(block.Bytes)err cert.CheckSignatureFrom(issuer)if err ! nil {log.Printf(证书%s的签名算法是%sCA签名没有验证成功, cert.Subject, cert.SignatureAlgorithm.String())return err}// 生成merkle tree leaf用于验证sct(Signed Certificate Timestamp)merkleLeaf, err : ct.MerkleTreeLeafForEmbeddedSCT([]*ctX509.Certificate{cert, issuer}, 0)if err ! nil {return err}// 获取证书里附带的sct列表sctList, err : x509util.ParseSCTsFromSCTList(cert.SCTList)if err ! nil {log.Printf(ParseCertificate failed %v, err)return err}log.Printf(验证证书%s的SCT列表, cert.Subject)初始化log机构信息 使用和chrome一致的机构列表https://www.gstatic.com/ct/log_list/v3/log_list.json // 获取chrome使用的certificate transparency log机构列表包含机构使用的公钥和查询api地址resp, err : http.DefaultClient.Get(loglist3.LogListURL)if err ! nil {return errors.New(下载certificate transparency log地址列表失败)}defer resp.Body.Close()body, err : io.ReadAll(resp.Body)if err ! nil {return errors.New(下载certificate transparency log地址列表失败)}loglistEntry, _ : loglist3.NewFromJSON(body)logsByHash, _ : ctutil.LogInfoByKeyHash(loglistEntry, http.DefaultClient)离线验证在线验证 logInfo.VerifySCTSignature方法不需要和log机构在线交互是使用已知的log机构公钥对SCT进行离线验证 ctx, cancel : context.WithTimeout(context.Background(), 10*time.Second)defer cancel()for _, sct : range sctList {// 验证sct参考https://github.com/google/certificate-transparency-go/blob/master/ctutil/sctscan/sctscan.golog.Printf(sct signature: %s, %s, base64.StdEncoding.EncodeToString(sct.Signature.Signature), time.Unix(0, int64(sct.Timestamp)*int64(time.Millisecond)).Format(time.RFC3339Nano))logInfo, ok : logsByHash[sct.LogID.KeyID]if !ok {log.Printf(sct key_hash: %s不存在对应certificate transparency log机构, base64.StdEncoding.EncodeToString(sct.LogID.KeyID[:]))continue}log.Printf(颁发sct的certificate transparency log机构是: %s地址%s, 公钥哈希%s, logInfo.Description,logInfo.Client.BaseURI(), base64.StdEncoding.EncodeToString(sct.LogID.KeyID[:]))err logInfo.VerifySCTSignature(*sct, *merkleLeaf)if err ! nil {log.Printf(Verify SCT failed %v, err)continue}log.Println(Verify SCT offline OK)// 线上验证非必须if _, err : logInfo.VerifyInclusionLatest(ctx, *merkleLeaf, sct.Timestamp); err ! nil {sth : logInfo.LastSTH()if sth ! nil {delta : time.Duration(sth.Timestamp-sct.Timestamp) * time.Millisecondif delta logInfo.MMD {// 如果生效时间logInfo.MMD还未到那么机构查询不到该sct的merkle tree leaf信息是正常的log.Printf(SCTs MMD has not passed %d - %d %v, sct.Timestamp, sth.Timestamp, logInfo.MMD)continue}}log.Printf(Failed to verify SCT online: %v, err)} else {log.Println(Verify SCT online OK)}} 每个SCT分别是不同log机构签发的如果一个证书附带的两个SCT是由同一个log机构签发或者SCT列表涉及的log机构合计不足3个浏览器似乎也会报错 目前证书检查通过后chrome的F12里才显示解析的SCT列表ERR_CERTIFICATE_TRANSPARENCY_REQUIRED错误发生时需要使用这个程序来查看SCT列表里是否存在重复注册、注册的log机构数量不足甚至是否无法通过SCT签名检查
http://www.hkea.cn/news/14353016/

相关文章:

  • 网站贴子推广怎么做网页链接怎么放到桌面上
  • wordpress 适合外贸站广州seo公司品牌
  • 网站建设会计分录怎么做给人做网站网站
  • 甘肃两学一做网站建筑公司做网站的好处
  • 免费网站建设模版云盘创建网站的软件
  • 冠辰网站建设企业培训平台
  • 湖北省建设工程网站微企免费网站建设
  • 音平商城谁做的网站新乡建设网站公司
  • 惠州企业网站建设选哪家wordpress页脚版权信息修改
  • 怎么让网站让百度收录可以做用户旅程图的网站
  • 建设谷歌公司网站费用unas做网站服务器
  • 设计网站大全软件江山市建设厅网站
  • 网站建设公司有as3 xml 网站模板 下载
  • 网站设计原则的历史自己切片做网站
  • 在云服务器上搭建网站网络公司推广方案
  • 视频网站建设工具成都郫县网站建设
  • 做画册好的国外网站推荐宝塔虚拟主机
  • 关于网页设计的教育网站设计wordpress 左导航
  • 网络营销的概念可译为网站关键词seo推广公司哪家好
  • 网站建设包含的费用内容黑帽seo工具
  • 长春高端品牌网站建设软件公司logo图标大全
  • 成功的网站必须具备的要素新乡网站建设报价
  • 好用网站推荐免费wordpress 更换空间阿里云
  • 网站界面版式wordpress 多本小说
  • 建站及推广枣阳城乡建设局网站
  • 南宁上林网站建设通州富阳网站建设
  • 智能建站推荐政协门户网站建设
  • 简单企业网站用什么wordpress静态插件
  • 建筑网站建设案例如何将网站地图提交给百度
  • 网站建设建站公司网站建设 要维护么