Hello ACME WG,

I would like to present an early draft proposing an extension to ACME for validating and issuing certificates containing SRV-ID identifiers as defined in RFC 4985.

*Problem Statement:* Many services (XMPP, Matrix, SIP, etc.) use DNS SRV records to delegate hosting to third-party providers while maintaining their domain identity. Currently, hosting providers cannot obtain appropriate certificates for customer domains without either:

 * Accessing customer DNS/web infrastructure for validation
 * Receiving certificates and private keys from customers

While CNAME delegation of _acme-challenge allows DNS validation without DNS control, it only works for a single service provider - you cannot CNAME the same subdomain to multiple providers. Additionally, the resulting certificates are overly broad - they're valid for the entire domain rather than being scoped to specific services.

*Proposed Solution:* The draft extends ACME to:

 * Define a new "srv" identifier type for authorization objects
 * Specify validation using dns-01 challenges at service-specific DNS
   locations (e.g., _acme-challenge._service.example.com)
 * Enable issuance of certificates containing SRV-ID identifiers per
   RFC 4985

This allows hosting providers to obtain certificates properly scoped to specific services without requiring control over the source domain's general infrastructure.

*Current Status:* This is an early draft seeking feedback on the overall approach before formal submission. I'm particularly interested in any concerns about the validation mechanism or security model.

Best regards,
Michel Le Bihan
Internet Engineering Task Force (IETF)               Michel Le Bihan
Request for Comments: XXXX                               August 2025
Category: Standards Track
ISSN: 2070-1721


      Automated Certificate Management Environment (ACME) 
             SRV Identifier Validation Extension

Abstract

   This document specifies an extension to the Automated Certificate
   Management Environment (ACME) protocol to enable validation and
   issuance of certificates containing SRV-ID identifiers as defined
   in RFC 4985.  This allows secure delegation of services where the
   service domain and hosting infrastructure are controlled by
   different entities, addressing the multi-tenancy challenges in
   protocols that use SRV records for service discovery.

Status of This Memo

   [Standard boilerplate]

Table of Contents

   1.  Introduction
   2.  Terminology
   3.  Problem Statement
   4.  SRV Identifier Type
   5.  Identifier Validation Challenges
   6.  Validation Process
   7.  Security Considerations
   8.  IANA Considerations
   9.  References

1.  Introduction

   Many application protocols can use DNS SRV records [RFC2782] for
   service discovery and delegation to third-party hosting providers.
   Organizations often wish to maintain their domain identity (e.g.,
   example.com) while delegating the actual service hosting to
   specialized providers.

   Currently, obtaining proper PKIX certificates for such delegated
   services presents significant operational challenges.  The hosting
   provider cannot easily obtain certificates for the customer's
   domain without either:

   o  Access to the customer's DNS infrastructure for validation
   o  Access to the customer's web server for HTTP validation
   o  The customer obtaining certificates and sharing private keys

   These approaches are either operationally infeasible, introduce
   security risks, or do not scale effectively in multi-tenant
   environments.

   This document extends ACME [RFC8555] to support SRV-ID identifiers
   [RFC4985], enabling hosting providers to obtain certificates that
   properly identify delegated services without requiring control over
   the source domain's infrastructure.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 [RFC2119] [RFC8174].

   This document uses the following terms:

   Source Domain:  The domain that owns the service identity (e.g.,
      example.com in _myservice.example.com)

   Target Domain:  The domain providing the actual service hosting
      (e.g., hosting.example.net)

   SRV-ID:  An identifier type defined in [RFC4985] representing a
      service-specific identity

3.  Problem Statement

   Consider an organization using example.com that wishes to delegate
   multiple services to different providers:
   - Service A to provider-a.example
   - Service B to provider-b.example  
   - Service C to provider-c.example

   These services might be discovered via SRV records such as:

   _service-a._tcp.example.com. 86400 IN SRV 0 5 5001 provider-a.example.
   _service-b._tcp.example.com. 86400 IN SRV 0 5 5002 provider-b.example.
   _service-c._tcp.example.com. 86400 IN SRV 0 5 5003 provider-c.example.

   Without DNSSEC (which has limited deployment), these delegations are
   vulnerable to DNS spoofing attacks.  Current ACME validation methods
   cannot be used by the hosting providers to obtain certificates for
   example.com without coordination that is often impractical.

   Existing approaches have significant limitations:

   o  DANE [RFC6698]: Requires DNSSEC deployment, which remains limited
      across many TLDs and registrars

   o  POSH [RFC7711]: Requires placing files in .well-known on the
      source domain's web server.  If that web server is compromised
      (e.g., through a CMS vulnerability), an attacker could modify
      the POSH files

   o  dns-account-01 [draft-ietf-acme-dns-account-label]: While this
      challenge type allows multiple providers to independently validate
      the same domain through unique DNS labels, it ties the validation
      to a specific ACME account URL that includes the CA endpoint.
      This creates operational inflexibility: if a hosting provider needs
      to switch CAs (due to rate limits, outages, pricing changes, or
      other operational reasons), every customer would need to update
      their DNS records to reflect the new account URL.  This requirement
      is impractical at scale and effectively locks providers into a
      single CA

   o  Certificate sharing: Requires distributing private keys between
      organizations, creating security and operational concerns

4.  SRV Identifier Type

   This document defines a new ACME identifier type "srv" for use in
   authorization objects.

   An SRV identifier object has the following fields:

   type (required, string):  The string "srv"

   value (required, string):  The SRVName as defined in [RFC4985],
      in the format "_service.domain".  MUST begin with an underscore
      followed by the service name, then a dot, then the domain name.
      This format corresponds to the SRVName structure in [RFC4985]
      Section 2, which omits the protocol component found in DNS SRV
      records.

   Example identifier object:

   {
     "type": "srv",
     "value": "_myservice.example.com"
   }

5.  Identifier Validation Challenges

   SRV identifiers MUST be validated using the dns-01 challenge type
   as defined in [RFC8555] Section 8.4, with the following modification:

   When validating an SRV identifier, the challenge TXT record MUST be
   provisioned under the service name rather than the base domain.
   Specifically:

   1. The client constructs the validation domain name by prepending
      "_acme-challenge." to the SRV identifier value.

   2. For an SRV identifier "_myservice.example.com", the resulting
      validation domain would be:
      "_acme-challenge._myservice.example.com"

   3. The client provisions a TXT record at this location containing
      the base64url encoding of the SHA-256 digest of the key
      authorization, as specified in the standard dns-01 challenge.

   The server performs validation by:

   1. Computing the SHA-256 digest of the stored key authorization

   2. Querying for TXT records at the validation domain name
      constructed from the SRV identifier

   3. Verifying that the contents of one of the TXT records matches
      the digest value

   HTTP-01 and other challenge types MUST NOT be used for SRV
   identifier validation, as they cannot properly demonstrate control
   of a service-specific identifier.

6.  Validation Process

   The validation flow is:

   1. Client creates a newOrder request with an SRV identifier
   2. Server creates authorization with dns-01 challenge
   3. Client provisions DNS TXT record at the service-specific location
   4. Server validates the dns-01 challenge
   5. Upon successful validation, server issues certificate containing
      the SRV-ID from the original identifier value

   The issued certificate MUST contain the SRV-ID in the
   subjectAltName extension as specified in [RFC4985], using the
   id-on-dnsSRV form.

   The issued certificate MUST NOT include a Common Name (CN) in the
   subject field. Placing a SRVName in the CN field could lead to
   interpretation issues with software interpreting the SRVName in
   the CN field as a standard domain name.

7.  Security Considerations

   7.1.  DNS Security

   This mechanism relies on the integrity of DNS SRV records.  In the
   absence of DNSSEC, it is vulnerable to DNS spoofing attacks.  ACME
   servers SHOULD:

   o  Use DNSSEC-validating resolvers where possible
   o  Perform validation from multiple network vantage points
   o  Apply similar mitigations as for standard DNS-based validation

   7.2.  Scope of Authorization

   Unlike certificates with DNS-ID identifiers, certificates with
   SRV-ID identifiers are restricted to the specific service.  This
   provides better isolation in multi-tenant environments where
   different services are hosted by different providers.  A
   certificate for "_service-a.example.com" cannot be used to
   impersonate "_service-b.example.com" or the base domain
   example.com.

   7.3.  Client Support

   Clients MUST properly validate SRV-ID certificates and not accept
   them as valid for general DNS names.  Protocol specifications using
   this extension SHOULD clearly define certificate validation
   requirements.

8.  IANA Considerations

   8.1.  ACME Identifier Types

   IANA is requested to add the following entry to the "ACME
   Identifier Types" registry:

   Label: srv
   Reference: [this document]

   8.2.  ACME Validation Methods

   IANA is requested to add the following entry to the "ACME
   Validation Methods" registry:

   +------------+-----------------+------+-----------+
   | Label      | Identifier Type | ACME | Reference |
   +============+=================+======+===========+
   | dns-01     | srv            | Y    | [this]    |
   +------------+-----------------+------+-----------+

9.  References

   9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2782]  Gulbrandsen, A., et al., "A DNS RR for specifying the
              location of services (DNS SRV)", RFC 2782, February 2000.

   [RFC4985]  Santesson, S., "Internet X.509 Public Key Infrastructure
              Subject Alternative Name for Expression of Service Name",
              RFC 4985, August 2007.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in
              RFC 2119 Key Words", BCP 14, RFC 8174, May 2017.

   [RFC8555]  Barnes, R., et al., "Automatic Certificate Management
              Environment (ACME)", RFC 8555, March 2019.

   9.2.  Informative References

   [RFC6698]  Hoffman, P. and J. Schlyter, "The DNS-Based
              Authentication of Named Entities (DANE)", RFC 6698,
              August 2012.

   [RFC7711]  Miller, M. and P. Saint-Andre, "PKIX over Secure HTTP
              (POSH)", RFC 7711, November 2015.

   [draft-ietf-acme-dns-account-label]  Chariton, A., et al.,
              "Automated Certificate Management Environment (ACME)
              DNS Labeled With ACME Account ID Challenge",
              draft-ietf-acme-dns-account-label-01, May 2025.

Author's Address

   Michel Le Bihan
   Email: [email protected]
_______________________________________________
Acme mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to