Cukup asring kita kudu nggarap sertifikat SSL. Ayo elinga proses nggawe lan nginstal sertifikat (ing kasus umum kanggo umume).
Temokake panyedhiya (situs sing bisa tuku SSL).
Nggawe CSR.
Kirim menyang panyedhiya sampeyan.
Verifikasi kepemilikan domain.
Entuk sertifikat.
Ngonversi sertifikat menyang formulir sing dibutuhake (opsional). Contone, saka pem kanggo PKCS #12.
Instal sertifikat ing server web.
Relatif cepet, ora rumit lan bisa dingerteni. Opsi iki cukup cocok yen kita duwe maksimal sepuluh proyek. Apa yen ana luwih akeh, lan duwe paling ora telung lingkungan? Pengembang klasik - pementasan - produksi. Ing kasus iki, iku worth mikir bab ngotomatisasi proses iki. Aku propose kanggo delve sethitik tuwa menyang masalah lan golek solusi sing bakal luwih nyilikake wektu ngginakaken ing nggawe lan njaga sertifikat. Artikel kasebut bakal ngemot analisis masalah lan pandhuan cilik kanggo pengulangan.
Ayo kula nggawe reservasi luwih dhisik: spesialisasi utama perusahaan kita yaiku .net, lan, kanthi mangkono, IIS lan produk Windows liyane sing gegandhengan. Mulane, klien ACME lan kabeh tumindak kanggo iku uga bakal diterangake saka sudut pandang nggunakake Windows.
Kanggo sapa iki relevan lan sawetara data awal
Perusahaan K diwakili dening penulis. URL (contone): company.tld
Project X minangka salah sawijining proyek kita, nalika nggarap aku nggawe kesimpulan yen kita isih kudu ngirit wektu maksimal nalika nggarap sertifikat. Proyek iki nduweni papat lingkungan: dev, test, pementasan lan produksi. Dev lan tes ana ing sisih kita, pementasan lan produksi ana ing sisih klien.
Fitur khusus proyek kasebut yaiku duwe akeh modul sing kasedhiya minangka subdomain.
Kanggo produksi, sertifikat wildcard sing dituku digunakake, ora ana pitakonan sing muncul ing kene. Nanging mung nyakup tingkat pisanan saka subdomain. Patut, yen ana certificate kanggo *.projectX.tld, banjur bakal bisa kanggo staging.projectX.tld, nanging ora kanggo module1.staging.projectX.tld. Nanging piye wae aku ora pengin tuku sing kapisah.
Lan iki mung adhedhasar conto siji proyek siji perusahaan. Lan, mesthi, ana luwih saka siji proyek.
Alasan umum kanggo saben wong kanggo ngatasi masalah iki katon kaya iki:
Nggampangake proses nerbitake lan njaga SSL kanggo kabutuhan internal proyek lan perusahaan kanthi sakabehe.
Panyimpenan terpusat saka cathetan sertifikat, sing sebagian ngatasi masalah verifikasi domain nggunakake DNS lan nganyari otomatis sabanjure, lan uga ngrampungake masalah kepercayaan klien. Isih, CNAME ing server perusahaan partner / performer luwih dipercaya tinimbang ing sumber daya pihak katelu.
Inggih, pungkasanipun, ing kasus iki tembung "luwih becik duwe tinimbang ora duwe" pas banget.
Milih Panyedhiya SSL lan Langkah-langkah Persiapan
Antarane pilihan sing kasedhiya kanggo sertifikat SSL gratis, cloudflare lan letsencrypt dianggep. DNS kanggo iki (lan sawetara proyek liyane) di-host dening cloudflare, nanging aku ora seneng nggunakake sertifikat kasebut. Mulane, diputusake nggunakake letsencrypt.
Kanggo nggawe sertifikat SSL wildcard, sampeyan kudu ngonfirmasi kepemilikan domain. Prosedur iki kalebu nggawe sawetara rekaman DNS (TXT utawa CNAME), banjur verifikasi nalika nerbitake sertifikat. Linux nduweni utilitas - sertifikat, sing ngidini sampeyan sebagian (utawa rampung kanggo sawetara panyedhiya DNS) ngotomatisasi proses iki. Kanggo Windows saka ditemokake lan diverifikasi opsi klien ACME aku dienggoni ing WinACME.
Lan rekaman kanggo domain wis digawe, ayo pindhah menyang nggawe sertifikat:
Kita kasengsem ing kesimpulan pungkasan, yaiku, pilihan sing kasedhiya kanggo konfirmasi kepemilikan domain kanggo nerbitake sertifikat wildcard:
Gawe cathetan DNS kanthi manual (nganyari otomatis ora didhukung)
Nggawe cathetan DNS nggunakake server acme-dns (sampeyan bisa maca liyane babagan kene.
Nggawe cathetan DNS nggunakake skrip sampeyan dhewe (padha karo plugin cloudflare kanggo certbot).
Sepisanan, titik katelu cukup cocok, nanging apa yen panyedhiya DNS ora ndhukung fungsi iki? Nanging kita butuh kasus umum. Nanging kasus umum yaiku cathetan CNAME, amarga kabeh wong ndhukung. Mulane, kita mandheg ing titik 2 lan pindhah menyang konfigurasi server ACME-DNS.
Nggawe server ACME-DNS lan proses penerbitan sertifikat
Contone, aku nggawe domain 2nd.pp.ua, lan bakal digunakake ing mangsa ngarep.
Syarat wajib Supaya server bisa mlaku kanthi bener, perlu nggawe cathetan NS lan A kanggo domain kasebut. Lan wayahe karu pisanan sing aku ketemu iku cloudflare (paling ora ing mode free nggunakake) ora ngijini sampeyan kanggo bebarengan nggawe rekaman NS lan A kanggo host padha. Ora iki masalah, nanging ing ikatan iku bisa. Dhukungan kasebut mangsuli manawa panele ora ngidini nindakake iki. Ora masalah, ayo nggawe rong rekaman:
acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.
Ing tahap iki, host kita kudu mutusake masalah acmens.2nd.pp.ua.
$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of data
Nanging acme.2nd.pp.ua ora bakal mutusake masalah, amarga server DNS sing nglayani durung mlaku.
Cathetan wis digawe, kita nerusake nyetel lan miwiti server ACME-DNS. Bakal urip ing server ubuntu ing docker wadhah, nanging sampeyan bisa mbukak ing ngendi wae ing ngendi golang kasedhiya. Windows uga cukup cocok, nanging aku isih seneng server Linux.
Gawe direktori lan file sing dibutuhake:
$ mkdir config
$ mkdir data
$ touch config/config.cfg
Ayo nggunakake vim karo editor teks favorit lan paste conto menyang config.cfg konfigurasi.
Kanggo operasi sing sukses, cukup kanggo mbenerake bagean umum lan api:
Nalika takon babagan link menyang server ACME-DNS, ketik URL server digawe (https) ing jawaban. URL server acme-dns: https://acme.2nd.pp.ua
Ing bukaan, klien ngetokake rekaman sing kudu ditambahake menyang server DNS sing ana (prosedur siji-wektu):
[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.
Kita nggawe rekaman sing dibutuhake lan priksa manawa digawe kanthi bener:
Kita konfirmasi manawa kita wis nggawe entri sing dibutuhake ing winacme, lan nerusake proses nggawe sertifikat:
Cara nggunakake certbot minangka klien diterangake kene.
Iki ngrampungake proses nggawe sertifikat; sampeyan bisa nginstal ing server web lan nggunakake. Yen, nalika nggawe sertifikat, sampeyan uga nggawe tugas ing panjadwal, banjur proses nganyari maneh sertifikat bakal kedadeyan kanthi otomatis.