Ai đó có thể giúp tôi với cú pháp chính xác không?
Đó là một quy trình gồm ba bước và nó bao gồm việc sửa đổi openssl.cnftệp. Bạn có thể làm điều đó chỉ với các tùy chọn dòng lệnh, nhưng tôi không làm theo cách đó.
Tìm openssl.cnftệp của bạn . Nó có thể nằm ở /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
Trên tôi Debian hệ thống, /usr/lib/ssl/openssl.cnfđược sử dụng bởi được xây dựng trong opensslchương trình. Trên các hệ thống Debian gần đây, nó nằm ở/etc/ssl/openssl.cnf
Bạn có thể xác định cái nào openssl.cnfđang được sử dụng bằng cách thêm nội dung giả XXXvào tệp và xem có opensslcuộn cảm hay không.
Đầu tiên, hãy sửa đổi các reqthông số. Thêm một alternate_namesphần openssl.cnfvới tên bạn muốn sử dụng. Không có alternate_namesphần nào hiện có , vì vậy không quan trọng bạn thêm nó vào đâu.
[ alternate_names ]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
DNS.4 = ftp.example.com
Tiếp theo, thêm phần sau vào phần hiện có [ v3_ca ] . Tìm kiếm chuỗi chính xác [ v3_ca ]:
subjectAltName = @alternate_names
Bạn có thể thay đổi keyUsagenhững điều sau theo [ v3_ca ]:
keyUsage = digitalSignature, keyEncipherment
digitalSignaturevà keyEnciphermentlà giá vé tiêu chuẩn cho chứng chỉ máy chủ. Đừng lo lắng về nonRepudiation. Đó là một chút vô ích được nghĩ ra bởi những chàng trai / cô gái khoa học máy tính muốn trở thành luật sư. Nó không có nghĩa là gì trong thế giới pháp lý.
Cuối cùng, IETF ( RFC 5280 ), các trình duyệt và CA chạy nhanh và lỏng lẻo, vì vậy có thể bạn cung cấp cách sử dụng khóa nào không quan trọng.
Thứ hai, sửa đổi các tham số ký kết. Tìm dòng này dưới CA_defaultphần:
# Extension copying option: use with caution.
# copy_extensions = copy
Và thay đổi nó thành:
# Extension copying option: use with caution.
copy_extensions = copy
Điều này đảm bảo SAN được sao chép vào chứng chỉ. Các cách khác để sao chép tên DNS bị hỏng.
Thứ ba, tạo chứng chỉ tự ký của bạn:
$ 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.
...
Cuối cùng, kiểm tra chứng chỉ:
$ 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