我试图在Kubernetes集群中的netty TLS服务器中终止TLS。
我正在使用证书经理管理我的网站的证书
这是kubernetes get secret websitesslcert-staging -o yaml的结果
apiVersion: v1
data:
tls.crt: REDACTED=
tls.key: REDACTED=
kind: Secret
metadata:
annotations:
cert-manager.io/alt-names: mysite.com
cert-manager.io/certificate-name: websitesslcert-staging
cert-manager.io/common-name: mysite.com
cert-manager.io/ip-sans: ""
cert-manager.io/issuer-group: cert-manager.io
cert-manager.io/issuer-kind: ClusterIssuer
cert-manager.io/issuer-name: letsencrypt-staging
cert-manager.io/uri-sans: ""
creationTimestamp: "2021-10-17T00:00:00Z"
name: websitesslcert-staging
namespace: default
resourceVersion: "123456"
uid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type: kubernetes.io/tls描述了kubernetes.io/tls的格式库伯内特斯的医生。
公钥/私钥对必须事先存在。-证书的公钥证书必须是.PEM编码的(Base64 64编码的DER格式),并与给定的私钥-密钥匹配。私钥必须采用通常称为PEM私钥格式,未加密。在这两种情况下,都不包括PEM的初始行和最后一行(例如,-开始证书-开始证书
我有一个必须使用终止TLS的Java (Netty)应用程序。在本地,我可以复制秘密("tls.crt“和"tls.key")并将它们写入文件,但是我无法在本地服务器Netty 4中使用它们来接受TLS连接。
ChannelPipeline p = channel.pipeline();
SslContext sslCtx = SslContextBuilder.forServer(tlsKeyFile, tlsCertFile).build();
p.addLast("ssl", sslCtx.newHandler(channel.alloc()));导致错误:
Execution error (CertificateException) at io.netty.handler.ssl.PemReader/readCertificates (PemReader.java:98).
found no certificates in input stream将
Execution error (CertificateParsingException) at sun.security.x509.X509CertImpl/parse (X509CertImpl.java:1826).
signed overrun, bytes = 919我应该如何处理这个问题,从Netty那里读取我的证书?
发布于 2021-10-17 16:14:24
结果证明,证书是yaml输出中的base64 64-编码。base64 --decode显示文件内容。
https://stackoverflow.com/questions/69600341
复制相似问题