A StartCom é uma empresa israelense, fundada em 1999 e sediada em Eilat, que dentre suas atividades trabalha com certificados SSL/TLS sob a marca StartSSL. Ela não seria muito diferente de qualquer outra empresa que comercializa produtos parecidos se não tivesse um diferencial: seu certificado SSL “Class 1” é oferecido gratuitamente, desde que sua finalidade seja voltada para uso pessoal. Não é necessário nada mais além de validar seu e-mail, ao criar uma conta com eles, e seu domínio (o que também é feito por e-mail), ao emitir um certificado. O primeiro passo, especificamente, é feito de uma maneira não muito convencional.

Logo de imediato é possível perceber o quanto o processo de registro é diferente: não há a criação de um usuário e senha. Ao se cadastrar, é enviado um e-mail com um código que deve ser colado na tela pós-cadastro do site deles. Não há sequer um link que o leve à mesma janela de confirmação, que não pode ser fechada enquanto este código não for submetido. Após confirmado, será exibida uma mensagem dizendo que a conta será validada manualmente antes que possa ser efetivamente utilizada. Não levei isso muito a sério, pois uma vez efetuei o registro entre 6 e 7 da manhã (horário de Israel) e mesmo assim validaram a conta em pouco mais do que 5 minutos.

Quando confirmarem a requisição de criação da conta, um segundo e-mail será enviado. Desta vez haverá um link que o levará para o processo registro propriamente dito, que consiste basicamente em gerar um certificado S/MIME de autenticação do cliente. O processo é realizado de forma automática através de um wizardContinue/Install/Finish” e ao final você estará automaticamente logado no sistema. Neste momento, no gerenciador de certificados do navegador (no Firefox: Preferences -> Advanced -> Certificates -> View Certificates) haverá um certificado emitido pela StartCom Ltd. que o identifica como cliente.

Este certificado, composto também por sua chave privada, identifica e autoriza o navegador a se logar no painel de controle da StartSSL. É muito importante que você não o perca de forma alguma, pois do contrário a única forma de se autenticar novamente será criar uma nova conta e entrar em contato com o suporte, tentando convencê-los a associá-la com a conta antiga, conforme recomenda o FAQ. Utilize o recurso de Backup/Export do gerenciador de certificados do navegador e armazene uma cópia, protegida por senha, em um local seguro.

Terminado o processo de registro, é necessário validar a propriedade de um domínio antes de emitir um certificado. Os passos são muito simples, consistindo em informar o domínio e um e-mail associado ao mesmo, como os genéricos “[email protected]” e “[email protected]”, ou algum outro endereço encontrado em seu WHOIS. Um código será enviado por e-mail e, confirmando-o, a validação será efetuada. A partir deste ponto, por até 30 dias será possível emitir certificados para este domínio sem precisar validá-lo novamente.

Passadas estas etapas, é possível enfim emitir o certificado SSL desejado. Acessando a opção Certificates Wizard -> Web Server SSL/TLS Certificate do painel, é possível realizar todo o processo de geração através da interface web. Caso você seja um sysadminold school”, preferirá pular a opção de geração de chave privada, gerando esta e um CSR (Certificate Signing Request) com o OpenSSL através do terminal, o que pode ser feito em um só comando:

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr

Respondendo as perguntas, serão gerados dois arquivos: o server.key, correspondente a chave privada do certificado, e o server.csr, que como a própria sigla diz, é a requisição de assinatura de um certificado. Este último é o único que precisa ser enviado para qualquer empresa que trabalhe com geração de certificados. A chave é realmente privada e sem ela o servidor web não poderá utilizar o certificado a ser assinado. Somente quem possuir ambos os arquivos poderá servir conexões HTTPS a partir do domínio.

Continuando o wizard, será perguntado qual o subdomínio a ser utilizado. O certificado irá valer tanto para este subdomínio quanto para o domínio em si. Isto é, um certificado criado para o “www.example.com” também vale para “example.com”. Ao final destas etapas, estarão disponíveis três certificados que precisarão serem concatenados em um só arquivo. São eles:

  • O certificado do domínio/subdomínio em si;
  • O certificado intermediário;
  • O certificado raiz.

Esta relação é o que fornece a validade ao certificado do final. De cima pra baixo, cada certificado possui uma assinatura do próximo elo da corrente. É por conta disto que cada sistema operacional ou navegador não precisa conhecer todos os certificados SSL existentes, basta que estes sejam assinados por outro certificado previamente conhecido e confiado como válido. Vale ressaltar ainda que a ordem dos certificados no arquivo que combina todos eles tem de ser a mesma da lista acima.

Como não poderia deixar de ser, o certificado gratuito da StartSSL possui algumas limitações:

  • A duração máxima do certificado é de um ano (embora seja possível emitir um novo a qualquer momento);
  • O certificado vale para apenas um domínio/subdomínio: nada de wildcards ou múltiplos subdomínios (isto pode ser resolvido emitindo-se mais de um certificado);
  • Embora realmente seja um produto grátis, há um valor a ser pago (US$ 24.90) caso seja necessário revogar o certificado, como no caso de uma chave privada comprometida;
  • O uso do certificado para fins comerciais é vetado.

Para a grande maioria dos casos de uso, nenhuma destas limitações é realmente crítica a ponto de inviabilizar sua utilização. O comportamento mais incômodo da empresa é mesmo a janela de manutenção, onde toda madrugada de sexta para sábado o site fica indisponível:

Weekend Maintenance

Some of our services are offline and under maintenance during the night hours on weekends until 7:00 AM GMT in the morning. We apologize for the temporary inconvenience and thank you for your understanding.

Estando ciente destes detalhes e tomando cuidado para não perder o certificado do cliente necessário para acessar o painel de controle, a StartSSL oferece um produto diferenciado e que realmente funciona, sem custo algum. É uma boa alternativa enquanto o projeto Let’s Encrypt, que também irá oferecer certificados gratuitos, não é lançado. Há ainda a opção de certificados wildcard ou EV (Extended Validation, aqueles cujo nome da empresa aparece em destaque na barra de endereços) pagos, caso estes sejam uma necessidade.