ProHoster > blog > Amministrazzjoni > Awtomazzjoni tal-ġestjoni taċ-ċertifikati Let's Encrypt SSL billi tuża sfida DNS-01 u AWS
Awtomazzjoni tal-ġestjoni taċ-ċertifikati Let's Encrypt SSL billi tuża sfida DNS-01 u AWS
Il-post tiddeskrivi passi biex tiġi awtomatizzata l-ġestjoni taċ-ċertifikati SSL minn Ejja Encrypt CA bl-użu Sfida DNS-01 и AWS.
acme-dns-route53 hija għodda li tippermettilna nimplimentaw din il-karatteristika. Jista 'jaħdem b'ċertifikati SSL minn Let's Encrypt, issalvahom f'Amazon Certificate Manager, uża l-API Route53 biex timplimenta l-isfida DNS-01, u, fl-aħħar, imbotta notifiki lill-SNS. IN acme-dns-route53 Hemm ukoll funzjonalità integrata għall-użu ġewwa AWS Lambda, u dan huwa dak li neħtieġu.
Dan l-artikolu huwa maqsum f'4 taqsimiet:
ħolqien ta' fajl zip;
il-ħolqien ta' rwol IAM;
toħloq funzjoni lambda li taħdem acme-dns-route53;
ħolqien ta' tajmer CloudWatch li jqajjem funzjoni 2 darbiet kuljum;
acme-dns-route53 huwa miktub f'GoLang u jappoġġja verżjoni mhux inqas minn 1.9.
Għandna bżonn noħolqu fajl zip b'binarju acme-dns-route53 ġewwa. Biex tagħmel dan għandek bżonn tinstalla acme-dns-route53 mir-repożitorju ta' GitHub billi tuża l-kmand go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Il-binarju huwa installat fi $GOPATH/bin direttorju. Jekk jogħġbok innota li waqt l-installazzjoni speċifikajna żewġ ambjenti mibdula: GOOS=linux и GOARCH=amd64. Huma jagħmluha ċara lill-kompilatur Go li jeħtieġ li joħloq binarju adattat għal Linux OS u arkitettura amd64 - dan huwa dak li jimxi fuq AWS.
AWS jistenna li l-programm tagħna jiġi skjerat f'fajl zip, allura ejja noħolqu acme-dns-route53.zip arkivju li se jkun fih il-binarju li għadu kif ġie installat:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Nota: Il-binarju għandu jkun fl-għerq tal-arkivju zip. Għal dan nużaw -j bandiera.
Issa l-laqam zip tagħna huwa lest għall-iskjerament, dak kollu li jibqa 'huwa li jinħoloq rwol bid-drittijiet meħtieġa.
Il-ħolqien ta' rwol IAM
Irridu nwaqqfu rwol IAM bid-drittijiet meħtieġa mil-lambda tagħna waqt l-eżekuzzjoni tiegħu.
Ejja nsejħu din il-politika lambda-acme-dns-route53-executor u immedjatament tagħtiha rwol bażiku AWSLambdaBasicExecutionRole. Dan se jippermetti lill-lambda tagħna taħdem u tikteb zkuk fis-servizz AWS CloudWatch.
L-ewwel, noħolqu fajl JSON li jiddeskrivi d-drittijiet tagħna. Dan essenzjalment jippermetti lis-servizzi lambda jużaw ir-rwol lambda-acme-dns-route53-executor:
Rwol lambda-acme-dns-route53-executor maħluqa, issa rridu nispeċifikaw permessi għaliha. L-eħfef mod biex tagħmel dan huwa li tuża l-kmand aws iam attach-role-policy, li tgħaddi l-politika ARN AWSLambdaBasicExecutionRole kif ġej:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Ħolqien ta 'funzjoni lambda li taħdem acme-dns-route53
Ħura! Issa tista' tuża l-funzjoni tagħna lill-AWS billi tuża l-kmand aws lambda create-function. Il-lambda trid tiġi kkonfigurata bl-użu tal-varjabbli ambjentali li ġejjin:
AWS_LAMBDA - jagħmilha ċara acme-dns-route53 dik l-eżekuzzjoni sseħħ ġewwa AWS Lambda.