Ad automation de SSL issuance

Saepius laborare debemus cum libellis SSL. Meminemus processum creandi et libellum instituendi (in casu generali pro pluribus).

  • Invenire provisorem (situm ubi SSL emere possumus).
  • Generare CSR.
  • mitte provisorem tuum.
  • Comproba dominium dominii.
  • Accipe libellum.
  • Converte libellum ad formam inquisitam (libitum). Exempli gratia ab pem ad PKCS #12.
  • Instrue libellum de servo interreti.

Jejunium relativum, non perplexum et intellegibile. Haec optio satis idonea est si maximum decem inceptorum habemus. Quid si plures sint, et saltem tres ambitus habeant? Classicum dev - choragium - productio. In hoc casu, valet de hoc processu cogitando automating. Propono paulo altius in quaestionem incurrere et solutionem invenire, quae amplius tempus minuat in scribendo et conservando libellorum conficiendo. Articulus analysin continebit problemati et parvum ducem ad repetitionem.

Reservationem in antecessum faciamus: praecipua specialis societas nostrarum rete est, ac proinde IIS et aliis Fenestra productis affinibus. Ergo ACME cliens et omnes actiones pro eo etiam ex parte usura Fenestra describebuntur.

Ad quem hoc pertinet et initialis notitia

Societas K per auctorem repraesentata. URL (exempli gratia): company.tld

Proiectum X unum est e nostris inceptis, dum opus est quod ad conclusionem veniebamus nos adhuc movere ad maximum tempus peculi cum libellis operandis. Hoc consilium quattuor ambitus habet: dev, testem, choragiam et productionem. Dev et probatio pro nobis sunt, exhibuit et productio in parte clientis sunt.

Peculiaris notam rei est quod magnum numerum modulorum habet qui in promptu sunt ut subdomains.

Id est, sequentis picturae habemus;

Dev
Test
CHORAGIUM
Production

projectX.dev.company.tld
projectX.test.company.tld
staging.projectX.tld
projectX.tld

module1.projectX.dev.company.tld
module1.projectX.test.company.tld
module1.staging.projectX.tld
module1.projectX.tld

module2.projectX.dev.company.tld
module2.projectX.test.company.tld
module2.staging.projectX.tld
module2.projectX.tld

...
...
...
...

moduleN.projectX.dev.company.tld
moduleN.projectX.test.company.tld
moduleN.staging.projectX.tld
moduleN.projectX.tld

Ad productionem, certificatorium wildcardum emptum adhibitum, nullae hic oriuntur quaestiones. Sed solum primum gradum subdomain operit. Proinde, si est testimonium pro *.projectX.tld, tunc operabitur pro staging.projectX.tld, sed non pro modulo1.staging.projectX.tld. Sed nescio quo modo separatum emere nolo.

et hoc solum in unius consilii exemplo unius societatis fundatur. Et quidem, nisi unum consilium.

Communes rationes ad unumquemque ad hanc quaestionem mittendam spectant aliquid simile:

  • Nuper Google propositum minuens maximam validitatem periodi libellorum SSL. Cum omnis consequatur.
  • Faciliorem modum procedendi et conservandi SSL ad necessitates internas inceptis et cum universo comitatu.
  • Receptaculum centrale per libellum relatum, quod problema verificationis dominii in parte utens DNS et subsequenti renovatione latae solvit, et etiam eventum clientis fideicommissi solvit. Nihilominus, CNAME ministranti societatis/perficientis societatis locupletior est quam in tertia factione subsidia.
  • Bene denique in hoc casu: melius est habere quam non habere, perfecte convenit.

Discriptis SSL Provisor ac Praeparatoria gradibus

Inter optiones opportunas gratis SSL libellorum, nubecularum et letsencryptarum habitae sunt. DNS huic (et nonnullis aliis inceptis) nubilo obnoxius est, sed non sum ventilabrum utendo testimoniorum eorum. Igitur uti letsencrypt placuit.
Ad libellum wildcard SSL creare, dominium dominium confirmare debes. Haec processus involvit aliquod DNS recordum (TXT vel CNAME) creans et postea comprobans illud cum libellum emisit. Linux utilitatem habet - certbotquae permittit ut ex parte (vel totaliter per aliquam DNS provisoribus) hunc processum automate. Pro Fenestra e* inveni et verificatur ACME clientis optiones constitui WinACME.

Et commentarius ad domain creatus est, transeamus ad libellum creando;

Ad automation de SSL issuance

Quaero ultimam conclusionem, nempe optiones praesto ad confirmandum dominium dominium ad libellum wildcard ferendum:

  1. Create DNS manually records (automatic renovatio non valet)
  2. DNS creando records acme-dns utens servo (magis de lege potes hic.
  3. DNS creando records utens tuo scripto (similis est plugin nubeculae pro certibot).

In primo aspectu, tertium punctum satis idoneum est, sed quid si DNS provisor hanc functionem non sustinet? Sed casu generali egemus. Generalis autem casus est CNAME monumentis, cum omnes sustineant. Ergo in puncto 2 desinimus et ad nostrum ACME-DNS configurandum accedimus.

Occasus sursum ACME-DNS server et libellum editae processus

Exempli gratia, domain 2nd.pp.ua creavi, et in futuro utor.

Amet postulationem Ut servo bene operando, NS et A monumenta pro dominio suo creare necesse est. Ac primum momentum ingratum, quod me offendit, est nubilus ille (saltem in libero usu modus) non patitur te simul creare NS et A recordum pro eodem exercitu. Non hoc problema, sed ligare potest. Firmamentum respondit tabellam suam hoc non permittere. Dubium non est, duos monumenta crearemus:

acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.

In hac scaena hospes noster debet componi acmens.2nd.pp.ua.

$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of data

Et hic acme.2nd.pp.ua non expediet, quia DNS servo qui ministrat nondum currit.

Monumenta creata sunt, ad constituendum ac deducendum ACME-DNS progredimur. Vivet in mea Decuria servo in Docker continens, sed huc illuc currere potes ubi golang praesto est. Fenestra quoque satis idonea est, sed adhuc servo Linux praefero.

Creare directoriis necessariis et files:

$ mkdir config
$ mkdir data
$ touch config/config.cfg

Utamur vim cum textu editore ventus et crustulum specimen in config.cfg configuratione.

Ad bene operandum satis est emendare generales et api sectiones;

[general]
listen = "0.0.0.0:53"
protocol = "both"
domain = "acme.2nd.pp.ua"
nsname = "acmens.2nd.pp.ua" 
nsadmin = "admin.2nd.pp.ua" 
records = 
    "acme.2nd.pp.ua. A 35.237.128.147",
    "acme.2nd.pp.ua. NS acmens.2nd.pp.ua.",                                                                                                                                                                                                  ]
...
[api]
...
tls = "letsencrypt"
…

Etiam, si placet, tabellarium in principali servitio presulis creabimus;

version: '3.7'
services:
  acmedns:
    image: joohoi/acme-dns:latest
    ports:
      - "443:443"
      - "53:53"
      - "53:53/udp"
      - "80:80"
    volumes:
      - ./config:/etc/acme-dns:ro
      - ./data:/var/lib/acme-dns

Paratus. Potes currere.

$ docker-compose up -d

In hoc statu hospes incipere debet acme.2nd.pp.ua, et apparet in 404 https://acme.2nd.pp.ua

$ ping acme.2nd.pp.ua
PING acme.2nd.pp.ua (35.237.128.147) 56(84) bytes of data.

$ curl https://acme.2nd.pp.ua
404 page not found

Si hoc non videtur - docker logs -f <container_name> Adiuvare feliciter omnia lecta sunt.

Certificatorium creare possumus incipere. Aperire potestates ut administrator et currunt winacme. Quaeritur in his comitiis:

  • M: Novam certificatorium (plenam optiones)
  • 2: Manual initus
  • 2: [dns-01] crea verificationem records cum nimiae dns (https://github.com/joohoi/acme-dns)
  • Interrogatus de nexu cum servo ACME-DNS, Domicilium servientis creati in responsione intrant. Domicilium nimiae servientis: https://acme.2nd.pp.ua

In ostio, cliens testimonium prodit quod DNS existenti servienti adiungendum debet (unum tempus procedendi);

[INFO] Creating new acme-dns registration for domain 1nd.pp.ua

Domain:              1nd.pp.ua
Record:               _acme-challenge.1nd.pp.ua
Type:                   CNAME
Content:              c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.
Note:                   Some DNS control panels add the final dot automatically.
                           Only one is required.

Ad automation de SSL issuance

Necessarium testimonium creamus et fac ut recte creata sit;

Ad automation de SSL issuance

$ dig CNAME _acme-challenge.1nd.pp.ua +short
c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.

Confirmamus nos inquisitum ingressum in winacme creavisse et processum libellum creasse:

Ad automation de SSL issuance

Quomodo uti certbot ut client describitur? hic.

Hic processus libellum creandi perficit, eum instituere potes in servo interreti eoque utere. Si, cum libellum creando, munus etiam in schedula creas, in posterum processus certificatoriae renovationis ipso facto occurret.

Source: www.habr.com