blob: d3a7be2a36ef84e337e8a9340a7986e81e9d710b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
[[!toc levels=4]]
Geração e renovação de certificados
===================================
Começando
---------
Proceda com a [configuração do ambiente de trabalho administrativo](/install).
Branch especial
---------------
Mudando para o branch `certs` da configuracao do puppet:
cd $FOLDER/puppet
git pull
git checkout certs # "checkout -b" se o branch nao existe
git merge master
Gerando novas chaves
--------------------
Proceda usando o [keyringer](https://keyringer.pw):
keyringer $HYDRA genpair ssl ssl/$DOMAIN *.$DOMAIN $FOLDER/puppet/keys/ssl/$DOMAIN
No caso da chave snakeoil (fornecida quando um atacante acessa https://IP), use
keyringer $HYDRA genpair ssl-self ssl/example.org example.org $FOLDER/puppet/keys/ssl/example.org
Chaves também podem ser geradas em massa. No caso de certificados simples (não-wildcard):
for domain in $DOMAINS; do
keyringer $HYDRA genpair ssl ssl/$domain $domain $FOLDER/puppet/keys/ssl/$domain
done
Registrando mudancas parciais
-----------------------------
keyringer $HYDRA git commit
keyringer $HYDRA git push
git commit -a -m "Nova chave SSL"
git push
Comprando um certificado
------------------------
Em seguida, compre um certificado no registrar, envie a requisição de certificado (arquivo `CSR`) e proceda com a validação.
Após a renovação
----------------
mv /path/to/$DOMAIN.crt keys/ssl/$DOMAIN.crt
cat keys/ssl/gandi.crt >> keys/ssl/$DOMAIN.crt # baixe o intermediario para este caminho
cat keys/ssl/$DOMAIN.pem > keys/ssl/$DOMAIN-concat.pem
cat keys/ssl/$DOMAIN.crt >> keys/ssl/$DOMAIN-concat.pem
cat keys/ssl/$DOMAIN.crt >> keys/ssl/$DOMAIN-concat.crt
cat keys/ssl/$DOMAIN.crt | keyringer $HYDRA encrypt ssl/$DOMAIN.crt
# Registrando e enviando mudancas finais
keyringer $HYDRA git commit
keyringer $HYDRA git push
git commit -a -m "Novo certificado"
git push
# Aplicando as mudancas no branch principal
git checkout master
git merge certs
git push
Informações de fingerprint:
openssl x509 -noout -text -in keys/ssl/$DOMAIN.crt
openssl x509 -noout -fingerprint -in keys/ssl/$DOMAIN.crt
openssl x509 -noout -fingerprint -in keys/ssl/$DOMAIN.crt -md5
Verificando os certificados assinados:
openssl verify -verbose -CAfile keys/ssl/gandi.crt keys/ssl/$DOMAIN.crt
Comunicação ao público:
* Modelos de mensagens de email disponível em `templates/certs`.
* Notificação para `https://www.$DOMAIN/pt-br/certs` dispínvel em `notices/certs*`.
Assine as comunicações com a [chave do grupo](https://protocolos.sarava.org/trac/wiki/Comunicacao/OpenPGP), por exemplo:
GPG_AGENT_INFO="" gpg -b --armor --default-key $KEY_FINGERPRINT -s $FOLDER/doc/notices/certs/$DOMAIN.pt-br.txt
GPG_AGENT_INFO="" gpg -b --armor --default-key $KEY_FINGERPRINT -s $FOLDER/doc/notices/certs/$DOMAIN.en.txt
Copie as notificações para ser incluída em `https://$DOMAIN/certs`:
cp $FOLDER/doc/notices/certs/* $FOLDER/puppet/modules/site_apache/files/htdocs/$MAIN_DOMAIN/certs/
cd $FOLDER/puppet
git add modules/site_apache/files/htdocs/$DOMAIN/certs/
git commit -m "Atualizando info sobre certificados"
git push
Por fim, atualize os `postfix::tlspolicy_snippet` do `$DOMAIN`, caso aplicável.
Checando expiração em massa
---------------------------
É necessário instalar o [ssl-cert-check](https://git.sarava.org/?p=ssl-wrapper.git;a=summary):
cd $FOLDER/puppet/keys/ssl
for file in *.crt; do
ssl-cert-check -b -c $file
done
Puppet
------
[Renovação de certificados do puppet](puppet).
|