ProHoster > Blog > Amministrazione > Automatizazione di a gestione di certificati SSL Let's Encrypt utilizendu sfida DNS-01 è AWS
Automatizazione di a gestione di certificati SSL Let's Encrypt utilizendu sfida DNS-01 è AWS
U post descrive i passi per automatizà a gestione di i certificati SSL da Criptemu CA aduprendu sfida DNS-01 и AWS.
acme-dns-route53 hè un strumentu chì ci permetterà di implementà sta funzione. Pò travaglià cù certificati SSL da Let's Encrypt, salvate in Amazon Certificate Manager, utilizate l'API Route53 per implementà a sfida DNS-01, è, infine, push notifications à SNS. IN acme-dns-route53 Ci hè ancu una funziunalità integrata per l'usu in AWS Lambda, è questu hè ciò chì avemu bisognu.
Stu articulu hè divisu in 4 sezzioni:
crià un schedariu zip;
crià un rolu IAM;
criendu una funzione lambda chì corre acme-dns-route53;
crià un cronometru CloudWatch chì attiva una funzione 2 volte à ghjornu;
acme-dns-route53 hè scrittu in GoLang è supporta a versione micca più bassa di 1.9.
Avemu bisognu di creà un schedariu zip cù un binariu acme-dns-route53 dentru. Per fà questu, avete bisognu di stallà acme-dns-route53 da u repositoriu GitHub usendu u cumandimu go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
U binariu hè stallatu in $GOPATH/bin annuariu. Per piacè nutate chì durante a stallazione avemu specificatu dui ambienti cambiati: GOOS=linux и GOARCH=amd64. Facenu chjaru à u compilatore Go chì deve creà un binariu adattatu per Linux OS è l'architettura amd64 - questu hè ciò chì corre in AWS.
AWS aspetta chì u nostru prugramma sia implementatu in un schedariu zip, allora creemu acme-dns-route53.zip archiviu chì cuntene u binariu novu installatu:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
nota: U binariu deve esse in a radica di l'archiviu zip. Per questu avemu aduprà -j bandiera.
Avà u nostru nickname zip hè prontu per a implementazione, tuttu ciò chì resta hè di creà un rolu cù i diritti necessarii.
Creazione di un rolu IAM
Avemu bisognu di stabilisce un rolu IAM cù i diritti richiesti da a nostra lambda durante a so esecuzione.
Chjamemu sta pulitica lambda-acme-dns-route53-executor è dà subitu un rolu di basa AWSLambdaBasicExecutionRole. Questu permetterà à a nostra lambda di eseguisce è scrive logs à u serviziu AWS CloudWatch.
Prima, creamu un schedariu JSON chì descrive i nostri diritti. Questu permetterà essenzialmente à i servizii lambda di utilizà u rolu lambda-acme-dns-route53-executor:
Avà andemu à eseguisce u cumandamentu aws iam create-role per creà un rolu:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
nota: ricordate di a pulitica ARN (Nome di Risorsa Amazon) - avemu bisognu in i prossimi passi.
Role lambda-acme-dns-route53-executor creatu, avà avemu bisognu di specificà i permessi per questu. U modu più faciule per fà questu hè di utilizà u cumandamentu aws iam attach-role-policy, passendu pulitica ARN AWSLambdaBasicExecutionRole a siguenti:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
nota: una lista cù altre pulitiche pò esse truvata ccà.
Crià una funzione lambda chì corre acme-dns-route53
Eura! Avà pudete implementà a nostra funzione à AWS usendu u cumandamentu aws lambda create-function. A lambda deve esse cunfigurata cù e seguenti variabili d'ambiente:
AWS_LAMBDA - rende chjaru acme-dns-route53 tale esecuzione avviene in AWS Lambda.
DOMAINS - una lista di domini separati da virgule.