
Um servidor simples para hospedar os certificados válidos, revogados e expirados exigidos pela Seção 2.2 dos Requisitos Base do Fórum CA/Browser.
Este é um servidor web construído especificamente para hospedar as páginas de teste exigidas pelos Requisitos de Base do Fórum CA/Browser. Eles contêm o seguinte requisito:
A AC DEVE hospedar páginas Web de teste que permitam que Fornecedores de Software de Aplicativos testem seu software com Certificados de Assinante que encadeiam até cada Certificado Raiz publicamente confiável. No mínimo, a AC DEVE hospedar páginas Web separadas usando Certificados de Assinante que sejam válidos, revogados e expirados.
Ele usa o protocolo ACME para obter certificados. Ele serve um site simples com algumas informações explicando para que serve o site de teste.
Do CA/Browser Forum TLS Baseline Requirements:
Embora tenha sido construído para o Let's Encrypt, deve ser utilizável por outras ACs ACME.
Este é um programa Go independente.
go run main.go -config [path/to/config.json]
Veja config/config.go para o esquema de configuração e config/testdata/test.json para um exemplo de configuração válida. A configuração do teste de integração é gerada em tempo de execução por integration/configgen.
Fornecemos um arquivo docker-compose.yml para testes locais. Ele implantará automaticamente o Pebble, uma AC de teste. Execute:
docker compose up --build
Em seguida, acesse um dos sites de teste.
Eles estão disponíveis em:
Essas URLs podem funcionar imediatamente, mas se não resolverem no seu sistema, você pode usar o curl para resolvê-las:
curl -k --resolve revoked.localhost:5001:127.0.0.1 'https://revoked.localhost:5001/'
Se quiser acessar os sites pelo navegador, edite seu arquivo /etc/hosts para incluir os endereços dos certificados de teste.
127.0.0.1 valid.localhost revoked.localhost expired.localhost
Este software foi inspirado por vários incidentes que observamos em outras ACs, bem como pela complexidade de nossa solução existente usando ferramentas prontas.
Algumas categorias de incidentes que observamos incluem:
Um servidor com integração ACME é a maneira mais confiável de garantir que os certificados sejam mantidos atualizados, mas os requisitos incomuns de servir certificados revogados e expirados não são uma característica típica de outros sistemas. Os sistemas de monitoramento também não suportam normalmente garantir que os certificados estejam revogados ou expirados.
Atualmente, test-certs-site suporta apenas o método de validação TLS-ALPN-01. Para cumprir esse desafio e servir os sites de teste, este programa escuta em uma porta configurável, que deve ser exposta como a porta TLS, :443.
Observe que na configuração de teste ele escuta em :5001 por padrão, o que corresponde à porta de validação padrão do Pebble.
Atualmente, test-certs-site armazena todo o material de chave como caminhos em disco. Para facilitar a execução do cert-test-program em ambientes de nuvem ou efêmeros, precisaremos oferecer suporte a algum mecanismo para persistir chaves em um gerenciamento de segredos.
Além do armazenamento de chaves e certificados, este programa não possui estado.
Há um listener de depuração configurável que expõe /debug/pprof e /metrics. Os logs são impressos em JSON para stderr.