Bisakah seseorang membantu saya dengan sintaks yang tepat?
Ini adalah proses tiga langkah, dan ini melibatkan modifikasi openssl.cnffile. Anda mungkin dapat melakukannya hanya dengan opsi baris perintah, tetapi saya tidak melakukannya dengan cara itu.
Temukan openssl.cnffile Anda . Kemungkinan besar terletak di /usr/lib/ssl/openssl.cnf:
$ find /usr/lib -name openssl.cnf
/usr/lib/openssl.cnf
/usr/lib/openssh/openssl.cnf
/usr/lib/ssl/openssl.cnf
Di sistem Debian saya , /usr/lib/ssl/openssl.cnfdigunakan oleh opensslprogram bawaan. Pada sistem Debian terbaru, ini terletak di/etc/ssl/openssl.cnf
Anda dapat menentukan mana openssl.cnfyang digunakan dengan menambahkan file palsu XXXdan melihat apakah openssltersedak.
Pertama, ubah reqparameter. Tambahkan alternate_namesbagian openssl.cnfdengan nama yang ingin Anda gunakan. Tidak ada alternate_namesbagian yang ada , jadi tidak masalah di mana Anda menambahkannya.
[ alternate_names ]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
DNS.4 = ftp.example.com
Selanjutnya, tambahkan yang berikut ini ke bagian yang ada [ v3_ca ] . Cari string yang tepat [ v3_ca ]:
subjectAltName = @alternate_names
Anda dapat mengubah keyUsageke yang berikut di bawah ini [ v3_ca ]:
keyUsage = digitalSignature, keyEncipherment
digitalSignaturedan keyEnciphermentmerupakan tarif standar untuk sertifikat server. Jangan khawatir nonRepudiation. Ini sedikit tidak berguna dipikirkan oleh orang-orang ilmu komputer yang ingin menjadi pengacara. Itu tidak ada artinya di dunia hukum.
Pada akhirnya, IETF ( RFC 5280 ), browser, dan CA berjalan cepat dan longgar, jadi mungkin tidak masalah penggunaan kunci apa yang Anda berikan.
Kedua, ubah parameter penandatanganan. Temukan baris ini di bawah CA_defaultbagian:
# Extension copying option: use with caution.
# copy_extensions = copy
Dan ubah menjadi:
# Extension copying option: use with caution.
copy_extensions = copy
Ini memastikan SAN disalin ke dalam sertifikat. Cara lain untuk menyalin nama DNS rusak.
Ketiga, buat sertifikat yang Anda tandatangani sendiri:
$ openssl genrsa -out private.key 3072
$ openssl req -new -x509 -key private.key -sha256 -out certificate.pem -days 730
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
...
Terakhir, periksa sertifikatnya:
$ openssl x509 -in certificate.pem -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 9647297427330319047 (0x85e215e5869042c7)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/emailAddress=test@example.com
Validity
Not Before: Feb 1 05:23:05 2014 GMT
Not After : Feb 1 05:23:05 2016 GMT
Subject: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/emailAddress=test@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (3072 bit)
Modulus:
00:e2:e9:0e:9a:b8:52:d4:91:cf:ed:33:53:8e:35:
...
d6:7d:ed:67:44:c3:65:38:5d:6c:94:e5:98:ab:8c:
72:1c:45:92:2c:88:a9:be:0b:f9
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4
X509v3 Authority Key Identifier:
keyid:34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign
X509v3 Subject Alternative Name:
DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
Signature Algorithm: sha256WithRSAEncryption
3b:28:fc:e3:b5:43:5a:d2:a0:b8:01:9b:fa:26:47:8e:5c:b7:
...
71:21:b9:1f:fa:30:19:8b:be:d2:19:5a:84:6c:81:82:95:ef:
8b:0a:bd:65:03:d1