草庐IT

go - 如何为 gRPC TLS 连接设置 docker-compose 容器?

我有一个gRPC客户端和一个服务器作为两个用docker-compose声明的docker容器。version:'3.3'services:apiserver:image:golang:latestcontainer_name:apiserverexpose:-"3000"ports:-"3000:3000"command:goruncmd/apiserver/main.gouserserver:image:golang:latestcontainer_name:userserverexpose:-"3001"ports:-"3001:3001"command:goruncmd/use

firefox - Golang https证书错误: remote error: tls: unknown certificate authority

我已经使用以下方法制作了我的证书和keyopensslreq-newkeyrsa:2048-new-nodes-x509-days3650-keyoutkey.pem-outcert.pem并在我的Golang代码中配置它log.Fatal(http.ListenAndServeTLS(":4201","cert.pem","key.pem",router))在使用chrome访问时运行良好,但在使用firefox访问时在控制台上抛出错误。2018/03/0216:54:11http:TLShandshakeerrorfrom100.67.56.121:54397:remoteerro

ssl - 如何访问我的 TLS/HTTPS key 以启动 ListenAndServeTLS?

我的服务器使用Let'sEncrypt获取其TLS证书以通过HTTPS提供服务。我选择在Apache或nginx上使用标准的net/http包,所以我使用了webroot安装方法,并将证书文件放在/etc/letsencrypt/直播/我的网站。问题是live目录只能由root用户访问。我的golang程序需要此目录中的证书才能通过HTTPS运行和服务。但是由于显而易见的原因,我没有以root用户身份运行我的程序。所以这让我想知道:我如何才能访问这些文件,而不必永久地以根用户身份不安全地运行我的Web服务器? 最佳答案 你有几个选择

ssl - Go https 客户端问题 - 远程错误 : tls: handshake failure

我遇到了这个错误“远程错误:tls:握手失败”:~/go/bin/aci-tls10.0.0.201userpass2016/12/2018:12:04posterror:Posthttps://10.0.0.201/api/aaaLogin.json:remoteerror:tls:handshakefailure代码是基本的HTTPS客户端:https://play.golang.org/p/cqPT0oR__qOpenSSL对这个https服务器很满意:$openssls_client-connect10.0.0.201:443(snip)SSLhandshakehasread1

ssl - 使用 golang mutual TLS auth 信任特定客户端

我已经在Go中成功设置了TLS相互身份验证客户端/服务器一段时间,但现在希望进行一些小的调整。具体来说,我想知道是否有一种方法只需要特定的客户端证书即可进行相互身份验证。我目前正在使用这样的东西://LoadcertandbuildpoolcaCert,_:=ioutil.ReadFile(caPath)caCertPool:=x509.NewCertPool()caCertPool.AppendCertsFromPEM(caCert)//RequireclientauthenticationtlsConfig:=&tls.Config{ClientAuth:tls.RequireAn

ssl - 在 GoLang 中执行 ReverseProxy 时确认 TLS 证书

在Go中,我使用NewSingleHostReverseProxy来执行反向代理,但是我需要确认主机站点的SSL证书,以确保我拥有正确的安全证书......我应该如何做?我应该与处理程序或传输一起执行此操作吗?我是Go的新手,但仍在思考它。proxy:=httputil.NewSingleHostReverseProxy(&url.URL{Scheme:"https",Host:"sha256.badssl.com",})http.ListenAndServe("127.0.0.1:80",proxy) 最佳答案 要访问证书,您将有

ssl - 去TLS握手错误

所以一切似乎在我的网络服务器上运行良好。但是我随机得到http:TLShandshakeerrorfromIPEOF证书都很好。HTTPS连接在移动设备和台式机上运行良好,但我随机收到此错误消息。我应该担心还是它是一些不支持https的机器人?服务器只是一个常规的ListenAndServeTLS,带有一个通过证书和key文件传递的httprouter。没有返回错误 最佳答案 这通常无需担心。这可以简单地是一些网络扫描器,它只是试图找出是否有人正在监听端口或某些连接不良的客户端。只要您没有从真实客户那里收到任何问题报告,您就可以忽略

ssl - tls : oversized record received with length XXXXX

我像这样使用内置的标准SSL套接字客户端库(net+crypto/tls):conn,err:=net.Dial("tcp","exploit.im:5222")//...config:=tls.Config{InsecureSkipVerify:true}tls_conn:=tls.Client(conn,&config)fmt.Println(tls_conn.Handshake())我收到消息:conn,err:=net.Dial("tcp","exploit.im:5222")我设法发现它与默认最大数据包大小(在common.go:31中设置的16384+2048)有某种关系。

ssl - 如何为 Go 服务器设置 TLS 密码?

我目前正在使用以下监听和服务命令来运行安全的websocket/文件服务器:http.ListenAndServeTLS(":443","site.crt","site.key",router)但是,我想将密码设置为TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256并设置最低SSL/TLS版本。我该怎么做?我想我需要使用这个Config以某种方式构建,但我不确定如何执行此操作。 最佳答案 2015:你可以在secrpc/tls_server.go中看到一个例子:tls.Listen("tcp",addr,&t

http - 我的 golang 网络服务器是否需要以 root 用户身份运行才能支持 HTTPS/TLS?

我想使用golang的内置ListenAndServeTLS()函数来为我的网络服务器提供服务(这是一个非常简单的服务器),我需要向它显示我的key的存储位置。key存储在只有root用户可以访问的位置(Let'sEncrypt默认情况下这样做),除非我是root用户,否则我无法监听端口80或443。这是否意味着我必须一直以root身份运行脚本?这不是不安全吗? 最佳答案 公然引用写得很好的CaddyFAQ:No.OnLinux,youcanusesetcaptogiveCaddypermissiontobindtolowports