मैं सब्जेक्ट कैसे निर्दिष्ट करूं?


9

मैं एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र उत्पन्न कर रहा हूं:

$ openssl req -x509 -newkey rsa:2048 -subj 'CN=example.com'

मैं निर्माण के समय भी एक विषय निर्दिष्ट करना चाहूंगा , लेकिन मुझे यह कैसे करना है इस बारे में खुलने वाले मेनपेज में जानकारी नहीं मिल सकती है।


2
कमांड लाइन स्विच नहीं है। आपको इसे एक config फाइल में लिखना होगा और फिर इस config फाइल का उपयोग करना होगा।
स्टीफन उलरिच

जवाबों:


4

एक अस्थायी फ़ाइल के लिए subjectAltName लिखने की कोशिश करें (मैं इसे hostextfile नाम दूँगा )

basicConstraints=CA:FALSE
extendedKeyUsage=serverAuth
subjectAltName=email:my@other.address,RID:1.2.3.4

और उदाहरण के लिए, "-ffile" विकल्प के माध्यम से इसे खोलता है।

openssl ca -days 730 -in hostreq.pem -out -hostcert.pem -extfile hostextfile

1
मेरा मानना ​​है कि यह सही है। X509v3 विषय वैकल्पिक नाम: DNS: kb.example.com, DNS: helpdesk.example.com
क्वाड्रुप्लेबकी

मैंने इस विवरण का उपयोग किया ।
विक्टर

3

opensslआदेश एक तरह से पहले एक कॉन्फ़िग फ़ाइल लिखे बिना subjectAltName जैसे एक्सटेंशन शामिल करने के लिए प्रदान नहीं करता है। मैंने एक साधारण उपयोगिता लिखी है जो यह सब स्वचालित रूप से करती है। यह github पर उपलब्ध है: https://github.com/rtts/certify

उदाहरण का उपयोग करें:

./certify example.com www.example.com mail.example.com

यह एक फ़ाइल बनाएगा जिसका example.com.crtनाम example.com, www.example.com, और mail.example.com के विषय वैकल्पिक नाम के साथ एक प्रमाण पत्र है।


0

SubjectAltName के साथ स्व-हस्ताक्षरित प्रमाणपत्र बनाएं

cd /etc/ssl

cat > my.conf <<- "EOF"
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=UA
ST=Dnepropetrovskaya
L=Kamyanske
O=DMK
OU=OASUP
emailAddress=webmaster@localhost
CN = www.dmkd.dp.ua

[ req_ext ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[ alt_names ]
DNS.0 = www.dmkd.dp.ua
DNS.1 = dmkd.dp.ua

EOF

# Create key
openssl genrsa -des3 -out server.key.secure 2048
# Disable secret phrase for key
openssl rsa -in server.key.secure -out server.insecure.key
# Create request certificate file with params from file my.conf
openssl req -new -key server.insecure.key -out server.csr -config my.conf
# Create certificate with params from file my.conf
openssl x509 -req -days 365 -in server.csr -signkey server.insecure.key -out server.crt -extensions req_ext -extfile my.conf
# Check request file and certificate for SubjectAltName precense
openssl req -text -noout -in server.csr
openssl x509 -in server.crt -text -noout

0

मैंने यहाँ जानकारी का उपयोग किया है, लेकिन इसे केवल जानकारी को संतुष्ट करने के लिए आवश्यक जानकारी से बाहर निकाल दिया है।

x509 v3 एक्सटेंशन विकल्प फ़ाइल:

echo "subjectAltName = @alt_names

[alt_names]
DNS.1 = www.example.com" > v3.ext

बाहरी कीफाइल:

openssl genrsa -out www.example.com.key 2048

CA हस्ताक्षर अनुरोध: (मान लिया है कि आपके पास CA कुंजी और प्रमाणित है)

openssl req -new -key www.example.com.key -subj "/CN=www.example.com" -out www.example.com.csr

प्रमाणपत्र बनाने के लिए अनुरोध पर हस्ताक्षर करें, और x509 एक्सटेंशन डेटा शामिल करें:

openssl x509 -req -in www.example.com.csr -CA ca.example.com.crt -CAkey ca.example.com.key -CAcreateserial -out www.example.com.crt -days 500 -sha256 -extfile v3.ext
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.