Site Overlay

How to Create Trusted Self-Signed SSL Certificates and Local Domains for Testing

Use of Weak and Self-Signed SSL Certificates

How to Create Trusted Self-Signed SSL Certificates and Local Domains for Testing | by Albin Issac | Better Programming

est için Güvenilir Otomatik İmzalı SSL Sertifikaları ve Yerel Etki Alanları Nasıl Oluşturulur

Yerel test etki alanları ayarlayın ve hızlı, yerel test için güvenilir, otomatik olarak imzalanan bir sertifikayı etkinleştirin

SSL sertifikası simgesi "Test için Güvenilir, Otomatik İmzalı SSL Sertifikaları ve Yerel Etki Alanları Nasıl Oluşturulur" metnini içeren

Çoğu zaman, uygulamaları yerel olarak test etmek için localhost dışında etki alanlarımız olur ve ayrıca güvenilir kendinden imzalı SSL sertifikalarına da ihtiyacımız olur.

Otomatik Olarak İmzalanan Sertifika

Otomatik olarak imzalanan sertifika, güvenilen bir sertifika yetkilisi yerine onu oluşturan kişi tarafından imzalanan bir sertifikadır. Geliştirme sunucuları, sertifika maliyetini ve ayrıca yönetim ek yüklerini azaltmamıza yardımcı olacak otomatik olarak imzalanan sertifikalarla etkinleştirilebilir.

Varsayılan olarak, otomatik olarak imzalanan sertifika, tarayıcılarda web sitelerine erişirken bir sertifika doğrulama hatası atar, ancak riski kabul ederek gerçek sayfalara geçmemize izin verir. Bazı durumlarda, otomatik olarak imzalanan sertifikalar, yalnızca geçerli SSL ile çalışan bazı tarayıcı işlevlerini (ör. coğrafi konum gibi farklı tarayıcıların API’lerini test etme) test etmemize yardımcı olmaz.

"Uyarı: İlerideki Potansiyel Güvenlik Riski" uyarısını görüntüleyen bir tarayıcının ekran görüntüsü.

Şimdi Windows’ta test etmek için yerel etki alanlarını ve güvenilir bir otomatik olarak imzalanan sertifikayı hızlı bir şekilde nasıl ayarlayacağımızı görelim. aynısı bazı ek adımlarla diğer sistemlerde de kullanılabilir.

Yerel Etki Alanları

Bazen uygulamamızı geliştirme ortamında test etmek için farklı etki alanlarına sahip olmamız gerekebilir. DNS kurulumu daha fazla zaman ve maliyet tüketir; yerel etki alanları, uygulamaları geliştirme ortamlarında hızlı bir şekilde test etmemize yardımcı olur.

Aşağıdaki test etki alanlarını tanımlayacağım — , , ve .myexample.comsub.myexample.commyexample1.com

Windows dosyasını düzenleyin, . Test etki alanlarını eşlemek için aşağıdaki girişleri ekleyin, böylece tanımlanan etki alanları aynı makine içindeki localhost üzerinde çalışan uygulamaya erişebilir.hostsC:\Windows\System32\drivers\etc\hosts127.0.0.1

127.0.0.1 myexample.com 
127.0.0.1 sub.myexample.com
127.0.0.1 myexample1.com

Şimdi OpenSSL aracılığıyla otomatik olarak imzalanan bir sertifika oluşturalım.

Kök SSL Sertifikası Oluşturma

Bir RSA-2048 anahtarı oluşturun ve dosyaya kaydedin.rootCA.key

openssl genrsa -des3 -out rootCA.key 2048

“rootCA.key için parola girin” ifadesini aldığınızda, bir parola girin ve güvenli bir şekilde saklayın.

Oluşturulan anahtar aracılığıyla bir kök sertifika oluşturun.

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1460 -out rootCA.pem

Geçerlilik günlerini gerektiği gibi değiştirin.

“Enter passphrase for rootCA.key” ifadesini aldığınızda, kök anahtarı oluştururken kullanılan parolayı girin.

Diğer isteğe bağlı bilgileri girin:

  • Ülke Adı (2 harfli kod) [AU]: ABD
  • Eyalet veya İl Adı (tam ad) [Bazı Eyaletler]: MN
  • Yer Adı (örneğin, şehir) []: Eagan
  • Kuruluş Adı (örneğin, şirket) [Internet Widgits Pty Ltd]: Teknoloji Forumu
  • Kuruluş Birimi Adı (ör. bölüm) []: Pazarlama
  • Ortak Ad (örneğin, sunucu FQDN’si veya SİZİN adınız) []: Yerel sertifika
  • E-posta Adresi []: [email protected]

Kök SSL Sertifikasına Güvenin:

Artık kök sertifika hazır. Yerel sistemdeki kök SSL sertifikasına güvenelim.

Aşağıdaki komutu komut isteminden çalıştırın (yükseltilmiş erişimle çalıştırın):

certutil -addstore -f "ROOT" rootCA.pem

Artık kök sertifika, Güvenilen Kök Sertifika Yetkilileri’nin bir parçası olarak eklenir.

Kök sertifikanın Güvenilen Kök Sertifika Yetkilileri'nin bir parçası olarak eklendiğini gösteren komut istemi.

Sertifikayı Sertifika Yöneticisi aracılığıyla doğrulayabilirsiniz veya .Certmgr.msc

Kök sertifika bile tarayıcılar aracılığıyla yönetilebilir: Chrome’da Gizlilik ve Güvenlik → Ayarlar → Güvenlik → Sertifikaları Yönetme → Güvenilen Kök Sertifika Yetkilileri’ne gidin.

Sertifikayı içeri/dışarı aktarabilir ve kaldırabilirsiniz (sertifikalar şu yolla içe aktarılmışsa kaldırılamaz):Certmgr.msc

Güvenilir kök sertifika yetkililerinin listesini gösteren Chrome tarayıcı ayarları.

Firefox’u yerel test için kullanırsanız, Windows sertifika deposundaki kök sertifikaları dikkate almaz (Chrome ve Edge, Windows sertifika deposundaki kök sertifikalara başvurur). Otomatik olarak imzalanan kök sertifika Firefox’a ayrı olarak aktarılmalıdır.

Seçenekler→ Gizlilik ve Güvenlik → Güvenlik → Sertifikaları’na gidin → Sertifikaları görüntüleyin.

Firefox'ta Sertifika Yöneticisi'ni görüntüleme.

Sertifikaları içeri/dışarı aktarabilir ve kaldırabilirsiniz. Önceki adımlarda oluşturulan Kök CA sertifikasını içeri aktarın. “Web sitelerini tanımlamak için bu CA’ya güven”i seçin.

Firefox'ta bir sertifikayı indirmek için "Web sitelerini tanımlamak için bu CA'ya güven" kutusunu işaretlemiş bir iletişim penceresi.

Kök Sertifika ile SSL SAN Sertifikası Oluşturma

Kök sertifikaya artık güvenilmektedir. Yerel alan adlarımızı desteklemek için bir SSL sertifikası verelim – , , ve test için.myexample.comsub.myexample.commyexample1.comlocalhost

Sertifika oluşturulurken yapılandırma ayrıntılarının kullanılabilmesi için yeni bir OpenSSL yapılandırma dosyası oluşturun.server.csr.cnf

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=US
ST=MN
L=Eagan
O=Tech Forum
OU=Marketing
[email protected]
CN = localhost

Create a file with a list of local SAN domains:v3.ext

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names[alt_names]
DNS.1 = myexample.com
DNS.2=sub.myexample.com
DNS.3=myexample1.com
DNS.4=localhost

Create a private key and certificate-signing request (CSR) for the localhost certificate.

openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config server.csr.cnf

This private key is stored on .server.key

Let’s issue a certificate via the root SSL certificate and the CSR created earlier.

openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext

When it says “Enter passphrase for rootCA.key,” enter the passphrase used while generating the root key.

The output certificate is stored in a file called .server.crt

Enable the SSL Certificate for the Local Server

Let’s now enable the certificate for the local server. I’m going to configure the certificate with the Express.js application to enable the trusted SSL communication.

app.js

var express = require('express')
const path = require('path')
const https = require('https');
const fs = require('fs');var app = express ()app.get('/index.html', function (req, res) {res.sendFile('index.html', {
root: path.join(__dirname, '.')
})
})https.createServer({
key: fs.readFileSync('ssl\\server.key'),
cert: fs.readFileSync('ssl\\server.crt')
}, app)
.listen(443, function () {
console.log('Example app listening on port 443! Go to
https://localhost/')
})

Now the certificate is trusted from the browser for the test domains , , , and .myexample.comsub.myexample.commyexample1.comlocalhost

A screenshot of a browser showing a certificate pop-up that the connection is secure.
Viewing the certificate-information settings for localhost.
Sertifika penceresindeki Ayrıntılar sekmesi ile "Konu Alternatif..." Vurgulanan. Aşağıdaki kutuda örnek DNS adlarımız gösterilmektedir.

Güvenilir, otomatik olarak imzalanan sertifika, yerel etki alanlarıyla birlikte geliştirme ve ilk test için kullanılabilir. Bu, güvenilen SSL sertifikası gerektiren bazı senaryoları test etmek için güvenilen yerel etki alanlarını hızlı bir şekilde etkinleştirmemize yardımcı olacaktır.