Replies: 1 comment 7 replies
-
Hey @Zorzi23 👋🏻 |
Beta Was this translation helpful? Give feedback.
7 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Feature Discussion: Native Support for TLS Data Access in RoadRunner for mTLS with NIST 800-204B Compliance
Background
I am working on implementing a secure Mutual TLS (mTLS) setup in a RoadRunner-based application to meet the requirements outlined in NIST Special Publication 800-204B, "Security Strategies for Microservices-based Application Systems." Specifically, NIST 800-204B emphasizes secure communication between microservices, including the use of mTLS for mutual authentication, certificate-based identity verification, and fine-grained access control (Section 3.2, "Secure Service-to-Service Communication").
To support mTLS in RoadRunner, we need access to TLS certificate details (e.g., client certificate's subject, issuer, serial number, and validity) within the HTTP middleware or PHP workers. While RoadRunner's HTTP plugin supports TLS configuration (e.g.,
client_auth_type: request_client_cert
orrequire_and_verify_client_cert
), there is no built-in mechanism to expose detailed TLS data to the application layer (e.g., PHP workers) for processing or validation, which is critical for implementing NIST 800-204B-compliant mTLS workflows.Problem Statement
Currently, to access TLS certificate information (such as
r.TLS.PeerCertificates
in Go), a custom middleware plugin must be developed to extract this data and pass it to the PHP worker via the request context (e.g., usingrequest->getAttribute()
). This approach works but requires significant custom development, which may not be ideal for all users. Additionally, ensuring compliance with NIST 800-204B (e.g., validating certificate attributes, enforcing certificate pinning, or integrating with external identity providers) adds complexity without native support.I would like to discuss the possibility of adding native support in RoadRunner for accessing TLS certificate details, either through the HTTP plugin or a dedicated mTLS plugin, to simplify mTLS implementations and ensure alignment with NIST 800-204B guidelines.
Proposed Feature
I propose one or more of the following enhancements to RoadRunner:
r.TLS.PeerCertificates
data available as a standardized attribute (e.g.,$request->getAttribute('tls_info')
) without requiring a custom middleware.mtls
) that handles mTLS-specific tasks, such as:.rr.yaml
HTTP SSL configuration to include options for mTLS-specific settings, such as:Use Case
A common use case is a microservices architecture where RoadRunner-based services require mutual authentication via mTLS. For example:
Without native support, developers must write custom Go plugins, which increases complexity and maintenance overhead.
NIST 800-204B Relevance
NIST 800-204B highlights several requirements for mTLS in microservices, including:
Native support in RoadRunner would simplify compliance with these requirements by providing standardized access to TLS data and validation mechanisms.
Beta Was this translation helpful? Give feedback.
All reactions