# 支持传输层安全TLS(Transport Layer Security)

在通过Internet传输数据时,传输层安全(TLS)是一种非常常见的安全方式 用户可能会在一些场景下遇到这样的情形:

被监控(部署探针)的应用中部署在同一个私有云(VPC)区域当中,与此同时, SkyWalking 的服务端部署在另一个私有云(VPC)区域中

在这种情况下,就非常有必要做一些传输安全认证.

# 配置要求

开启 服务直连 功能, 详情参考 文档.

由于通过公网直接上报数据,由于安全问题,名称(naming)服务机制并不适合这种情况.所以我们在HTTP服务的名称服务中不支持TLS。

# 版本支持

5.0.0-beta +

# 认证模式

仅仅支持 非双向认证.

  • 如果你比较熟悉如何生成 key 文件,可以使用 脚本 .
  • 在客户端使用 ca.crt文件
  • 在服务端使用 server.crtserver.pem.

# 配置并开启 TLS

# 探针配置

  • ca.crt 放置在探针文件夹的 /ca 文件夹中. 需要注意的是,发行的版本中不包含/ca文件夹,需要自行创建.

如果探针检测到文件 /ca/ca.crt ,会自动开启 TLS.

# Collector 配置

agent_gRPC/gRPC 模块支持 TLS. 并且现在只有这个模块支持.

  • application.yml中的 ssl_cert_chain_filessl_private_key_file 配置打开.
  • ssl_cert_chain_file 配置为 server.crt的绝对路径.
  • ssl_private_key_file 配置为 server.pem的绝对路径.

# 避免端口共享

在大多数情况下,我们建议在agent_gRPC / gRPCremote / gRPC模块中共享所有gRPC服务的端口。 但是,当你在agent_gRPC / gRPC模块中打开TLS时不要这样做,原因就是无论是否开始TLS,你都无法监听端口。 解决方案, 换一个端口 remote/gRPC/port.

# 其他端口监听如何操作?

请使用其他安全方式确保不能访问 VPC 区域外的其他端口,例如防火墙,代理等。