SoftEther ServerCertSet: yenilənmiş zənciri vpncmd ilə idxal edin
Yenilənmiş fayl SoftEther-in server kimliyini dəyişmir. Zənciri ServerCertSet ilə idxal edin, yerləşdirmə addımını qoşun və dinləyicini oxuyun.
Certbot uğurlu yeniləmə bildirir, diskdəki fayllar yeni tarixlər daşıyır, amma müştərilər hələ də köhnə kimliklə qarşılaşır. SoftEther SSL server sertifikatını öz server səviyyəli konfiqurasiyasında saxlayır, buna görə diskdəki yeni fayl yarpaq sertifikat və onun açarı idxal olunana qədər heç nəyi dəyişmir. Aşağıdakı ardıcıllıq bir əl ilə idxalı, hər yeniləmədən sonra işləyən sarğıçı və dinləyicinin həqiqətən nə təqdim etdiyini oxuyan yoxlamanı əhatə edir. Hər addım növbəti yeniləmədən sonra müqayisə edə biləcəyiniz sübutlar qoyur.
Yenilənmiş fayl server kimliyini dəyişmir
Buraxılış və yerləşdirmə ayrı-ayrı hadisələrdir və hər birinin öz uğursuzluq rejimi var. ACME müştərisi faylları bir nəsil qovluğuna yazır və uğuru qeyd edir; SoftEther isə konfiqurasiyasına ən son yüklənmiş sertifikatı işlətməyə davam edir. Buna görə sıfır çıxış statusu xidməti deyil, faylları təsvir edir və heç kim baxmadıqca bu ikisi fərqli qala bilər. İdxalı yerləşdirmə addımı, yeniləməni isə onun girdisi kimi qəbul edin.
Bu fərq çaşdırıcı yarım-uğursuzluğu da izah edir: köhnə sertifikat son istifadə tarixinə qədər işləməyə davam edir, ona görə əvvəlcə heç nə pozulmuş görünmür. Vaxtı bitəndə isə bütün müştərilər eyni anda uğursuz olur və bu, buraxılmış yerləşdirmə addımından çox kəsinti kimi görünür. Hər yeniləmədən sonra təqdim edilən kimliyi yoxlamaq bu sürprizi adi müşahidəyə çevirir.
Dinləyiciyə uyğun çağırışı seçin
Sertifikat müştərilərin yoxladığı hostu adlandırmalıdır, buna görə daxili etiket və ya ünvan yerinə ictimai DNS adından istifadə edin. HTTP-01 çağırışın bir müddət 80 portunda cavablandırılmasını tələb edir; bu müvəqqəti dinləyicidir və heç vaxt SoftEther-in öz portunu köçürməyə səbəb deyil. DNS-01 nəzarəti bir qeyd vasitəsilə sübut edir və ümumiyyətlə daxil olan HTTP tələb etmir.
Nəzarətsiz yeniləmə bir zonaya məhdudlaşdırılmış etimadnamələrlə avtomatik DNS inteqrasiyası deməkdir, hər iki ayda bir əl ilə yazılan TXT qeydi deyil. Wildcard çağırışın növünü dəyişir, həmin avtomatlaşdırmaya olan ehtiyacı yox. Bunu ilk sertifikat yaranmazdan əvvəl qərarlaşdırın, çünki çağırış növünü sonra dəyişmək müştəri konfiqurasiyasına və firewall-a birlikdə toxunmaq deməkdir.
Buradakən artefaktları düzgün saxlayın. Yarpaq sertifikat və aralıq sertifikatlar ayrı fayllar və birləşdirilmiş zəncir faylı kimi gəlir, şəxsi açar yenə ayrıdır və idxal təkbaşına ictimai sertifikatı deyil, uyğun açarı ilə zənciri tələb edir.
Zənciri server səviyyəsində idxal edin
Sertifikata toxunmazdan əvvəl server konfiqurasiyasının ehtiyat nüsxəsini çıxarın və idarəetmə interfeysinə hələ də çata bildiyinizi təsdiqləyin. Virtual Hub administratoru kimi deyil, server administratoru kimi qoşulun, çünki sertifikat server obyektinə aiddir. Sonra zənciri və açarı mütləq yol ilə, əmri işlədən hesabın oxuya bildiyi fayllardan yükləyin. Nəzərə alın ki, yollar mütləqdir, çünki əmr onları vpncmd-ni işlədən prosesin iş qovluğundan həll edir:
ServerCertSet /LOADCERT:/etc/letsencrypt/live/vpn.example.com/fullchain.pem /LOADKEY:/etc/letsencrypt/live/vpn.example.com/privkey.pemUğuru fərz etmək yerinə əmrin çıxışını oxuyun, sonra ötürdüyünüz fayla güvənmək yerinə zənciri yenidən oxuyun. Bütöv PEM paketini idxal edən buraxılışlarla yalnız ilk sertifikatı götürən buraxılışlar arasındakı sərhəd bir yerdə sənədləşdirilməyib, ona görə qarşınızdakı buraxılış üçün məsələni yoxlama həll edir. Dinləyicinin təqdim etdiyi sertifikatları sayın; aralıq sertifikatı olmayan yarpaq yalnız ilk bloku işlədən idxalçının imzasıdır.
İdxal edilmiş açarı yalnız serveri işlədən hesab üçün oxunaqlı saxlayın və idarəetmə parolunu shell tarixçəsindən kənarda tutun. Bu ilk idxalda parolu əmr arqumenti kimi ötürmək yerinə sorğuda yazın. Bu iki vərdiş heç nəyə başa gəlmir və sertifikat yerləşdirməsinin qorumaq istədiyi bir şeyi sızdırmasının ən geniş yayılmış yolunu aradan qaldırır. Bunu ilk idxaldan əvvəl edin, sonra deyil.
Yeniləməni deyil, yerləşdirməni qoşun
Əl ilə idxal işlədikdən sonra məhz həmin addımları kiçik bir sarğıçın içinə qoyun və uğurlu yeniləmədən sonra onu ACME müştərisindən çağırın. Certbot qarmaq üçün RENEWED_LINEAGE və RENEWED_DOMAINS dəyişənlərini qoyur, buna görə sarğıç bir neçə sertifikat idarə edən maşında tək sertifikat üzərində hərəkət edə bilər. Hostdakı hər yeniləməyə reaksiya vermək yerinə nəsil üzrə süzgəcdən keçirin. Sarğıç serverin imtiyazları ilə işləyən yerləşdirmə kodudur, ona görə onu bu vəzifədəki hər hansı digər skript kimi nəzərdən keçirin.
certbot renew --deploy-hook /usr/local/sbin/softether-deploy.shNəzarətsiz işləyən qarmaq öz qorunan etimad anbarına və insana çatan uğursuzluq siqnalına ehtiyac duyur. Buraxılış uğurlu olub idxal uğursuz olarsa, başqa sertifikat tələb etmək yerinə idxalı təkrar edin, çünki ikinci sorğu yerləşdirmə qüsurunu yeni faylın arxasında gizlədir. Certbot yeniləmə sənədləri heç nəyi yeniləməyən işə salmanın normal nəticə olduğunu aydın deyir, buna görə ikisini fərqləndirən qarmaqdır.
Təqdim edilən zənciri faylla müqayisə edin
Diski deyil, dinləyicini oxuyun. Müştərilərin istifadə etdiyi server adı ilə müştəriyə baxan porta qoşulun, sonra barmaq izini və çatdırılan zənciri qarmağın quraşdırdığı nəsillə müqayisə edin. Bunu iki əmr əhatə edir və birincisi aralıq sertifikatların ümumiyyətlə gəlib-gəlmədiyini də göstərir:
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts </dev/null 2>/dev/null | grep -c 'BEGIN CERTIFICATE'
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -dates -fingerprint -sha256Sonra yeni müştəri bağlantısı qurun, çünki idxaldan əvvəl qurulmuş sessiyalar əvvəlki kimliyə qarşı doğrulanıb və yenisi haqqında heç nə sübut etmir. Əgər müştərilər köhnə yarpağı pinləyirsə, ictimai zəncir etibarlı olsa belə əlaqələndirilmiş yeniləməyə ehtiyacları var və bu iş yeniləmə ilə eyni runbook-a aiddir. Xidmətin qarşısındakı əks proxy yaxşı sertifikat təqdim edə bilər, halbuki VPN dinləyicisi hələ də köhnəsini saxlayır; buna görə yoxlama müştərilərin həqiqətən çatdığı portu adlandırmalıdır. Barmaq izini yeniləmə tarixinin yanında qeyd edin ki, növbəti müqayisə yaddaş aktı deyil, yoxlama olsun.