0

我想在 Cloud Foundry 上通过 CUPS/HTTPS 打印 PostScript。它在我使用 HTTP 时有效,但在 gorouter 的日志中对 HTTPS 失败:

http: TLS handshake error from ...

我的cipher_suites

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

我试图设置router.logging_leveldebug默认info)但它没有任何改变......

有没有机会获得更多信息?gorouter最详细的日志级别是多少?

4

1 回答 1

0

我解决了我的问题。在我的情况下,在 gourouter 上启用了双向 TLS:

默认情况下,Gorouter 在 TLS 握手中请求但不需要客户端证书。

https://docs.cloudfoundry.org/adminguide/securing-traffic.html#gorouter_mutual_auth


检查是否启用了 mTLS

1.寡妇SCHANNEL事件记录

添加注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
EventLogging REG_DWORD = 3

https://blogs.technet.microsoft.com/kevinjustin/2017/11/08/schannel-event-logging/

现在您应该找到服务器要求提供客户端证书但找不到的事件日志。

2.curl

看粗线:

curl -I -v -H "Connection: close" https://your-app.cloud
  • 即将 connect() 到 your-app.cloud 端口 443 (#0)
  • 连接到 your-app.cloud 端口 443 (#0)
  • 使用 certpath 初始化 NSS:sql:/etc/pki/nssdb
  • CAfile:/etc/pki/tls/certs/ca-bundle.crt CApath:无
  • NSS:未找到客户端证书(未指定昵称)
  • 使用 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 的 SSL 连接

3.openssl

看粗线:

openssl s_client -connect your-app.cloud:443 -state
  • 已连接(00000003)
  • SSL_connect:在/连接初始化之前
  • SSL_connect:SSLv2/v3 写客户端 hello A
  • SSL_connect:SSLv3 读取服务器 hello A
  • ...
  • 验证返回:1
  • SSL_connect:SSLv3 读取服务器证书A
  • SSL_connect:SSLv3 读取服务器密钥交换 A
  • SSL_connect:SSLv3 读取服务器证书请求 A
  • SSL_connect:SSLv3 读取服务器完成 A
  • SSL_connect:SSLv3写客户端证书A
  • SSL_connect:SSLv3 写客户端密钥交换 A
  • SSL_connect:SSLv3 写入更改密码规范 A
  • SSL_connect:SSLv3 写入完成 A
  • SSL_connect:SSLv3 刷新数据
  • SSL_connect:SSLv3 读取服务器会话票据 A
  • SSL_connect:SSLv3 读取完成 A

禁用 Gorouter mTLS

使用 CF 部署清单更改 Gorouter 属性:

- name: router
  - name: gorouter
    release: routing
    properties:
      router:
        forwarded_client_cert: always_forward
        client_cert_validation: none

现在您可以检查是否再次启用了 mTLS。

请注意,这些设置不适用于路由版本0.164.0,但0.178.0可以按预期工作。

于 2018-05-31T09:55:29.637 回答