ProHoster > Blog > İdarə > DNS-01 çağırışı və AWS istifadə edərək Let's Encrypt SSL sertifikat idarəçiliyinin avtomatlaşdırılması
DNS-01 çağırışı və AWS istifadə edərək Let's Encrypt SSL sertifikat idarəçiliyinin avtomatlaşdırılması
Yazı SSL sertifikatlarının idarə edilməsini avtomatlaşdırmaq üçün addımları təsvir edir Gəlin CA-nı şifrələyək istifadə etmək DNS-01 problemi и AWS.
acme-dns-route53 bu xüsusiyyəti həyata keçirməyimizə imkan verəcək bir vasitədir. O, Let's Encrypt-dən SSL sertifikatları ilə işləyə, onları Amazon Certificate Manager-də saxlaya, DNS-53 çağırışını həyata keçirmək üçün Route01 API-dən istifadə edə və nəhayət, bildirişləri SNS-ə göndərə bilər. IN acme-dns-route53 AWS Lambda daxilində istifadə üçün daxili funksionallıq da var və bizə lazım olan budur.
Bu məqalə 4 hissəyə bölünür:
zip faylı yaratmaq;
IAM rolunun yaradılması;
işləyən lambda funksiyası yaratmaq acme-dns-route53;
gündə 2 dəfə bir funksiyanı işə salan CloudWatch taymerinin yaradılması;
acme-dns-route53 GoLang-da yazılmışdır və 1.9-dan aşağı olmayan versiyanı dəstəkləyir.
Binar ilə zip faylı yaratmalıyıq acme-dns-route53 içəri. Bunu etmək üçün quraşdırmaq lazımdır acme-dns-route53 əmrindən istifadə edərək GitHub deposundan go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Binar quraşdırılmışdır $GOPATH/bin kataloq. Nəzərə alın ki, quraşdırma zamanı biz iki dəyişdirilmiş mühit təyin etdik: GOOS=linux и GOARCH=amd64. Onlar Go kompilyatoruna aydınlaşdırırlar ki, o, Linux OS və amd64 arxitekturasına uyğun binar yaratmalıdır - bu, AWS-də işləyir.
AWS proqramımızın zip faylında yerləşdirilməsini gözləyir, ona görə də yaradaq acme-dns-route53.zip yeni quraşdırılmış ikili faylı ehtiva edən arxiv:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Qeyd: Binar zip arxivinin kökündə olmalıdır. Bunun üçün istifadə edirik -j bayraq.
İndi zip ləqəbimiz yerləşdirməyə hazırdır, qalan şey lazımi hüquqlara malik bir rol yaratmaqdır.
IAM rolunun yaradılması
İcra zamanı lambdamızın tələb etdiyi hüquqlara malik bir IAM rolu qurmalıyıq.
Gəlin buna siyasət deyək lambda-acme-dns-route53-executor və dərhal ona əsas rol verin AWSLambdaBasicExecutionRole. Bu, lambdamıza AWS CloudWatch xidmətinə logları işlətməyə və yazmağa imkan verəcək.
Əvvəlcə hüquqlarımızı təsvir edən JSON faylı yaradırıq. Bu, mahiyyətcə lambda xidmətlərinə roldan istifadə etməyə imkan verəcək lambda-acme-dns-route53-executor:
İndi əmri icra edək aws iam create-role rol yaratmaq üçün:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
Qeyd: ARN (Amazon Resurs Adı) siyasətini xatırlayın - növbəti addımlarda bizə lazım olacaq.
Rolu lambda-acme-dns-route53-executor yaradılmışdır, indi bunun üçün icazələri müəyyən etməliyik. Bunun ən asan yolu əmrdən istifadə etməkdir aws iam attach-role-policy, keçən siyasət ARN AWSLambdaBasicExecutionRole belədir:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Qeyd: digər siyasətlərin siyahısı ilə tanış ola bilərsiniz burada.
Çalışan lambda funksiyasının yaradılması acme-dns-route53
Yaşasın! İndi əmrdən istifadə edərək funksiyamızı AWS-də yerləşdirə bilərsiniz aws lambda create-function. Lambda aşağıdakı mühit dəyişənlərindən istifadə etməklə konfiqurasiya edilməlidir:
AWS_LAMBDA - aydınlaşdırır acme-dns-route53 bu icra AWS Lambda daxilində baş verir.