ขออภัยสำหรับสิ่งนั้น แต่ฉันเป็นผู้มาใหม่ที่ ssl และฉันผิดอะไร ฉันพยายามเปลี่ยนการเข้าสู่ระบบ dovecot imap เป็น imaps แต่มีข้อผิดพลาดเกิดขึ้นกับการตรวจสอบใบรับรอง ssl ใบรับรอง ssl ใช้งานได้กับเซิร์ฟเวอร์ https apache และเหมือนกับที่ฉันพยายามใช้กับ dovecot ฉันพยายามเข้าใจคำตอบจากเดฟ ทอมสัน https://stackoverflow.com/questions/47108886/openssl-s-client-error-verify-errornum-2unable-to-get-issuer-certificate แต่มันยากสำหรับผู้มาใหม่ บางทีคุณอาจมีวิธีที่ง่ายกว่านี้ ขอบคุณและพี่น้อง
openssl s_client -เชื่อมต่อ <โดเมนของฉัน>:993 -ชื่อเซิร์ฟเวอร์ <โดเมนของฉัน> -CAfile /etc/apache2/ssl/cert_2021.ca-bundle
เอาต์พุต:
เชื่อมต่อแล้ว(00000003)
ความลึก=2 C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority
ตรวจสอบข้อผิดพลาด: num=2: ไม่สามารถรับใบรับรองผู้ออก
ผู้ออก= C = GB, ST = มหานครแมนเชสเตอร์, L = Salford, O = Comodo CA Limited, CN = AAA Certificate Services
ตรวจสอบผลตอบแทน:1
ความลึก=1 C = GB, ST = มหานครแมนเชสเตอร์, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation CA เซิร์ฟเวอร์ที่ปลอดภัย
ผู้ออก= C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority
ตรวจสอบผลตอบแทน:1
ความลึก=0 CN = <โดเมนของฉัน>
ผู้ออก= C = GB, ST = มหานครแมนเชสเตอร์, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation CA เซิร์ฟเวอร์ที่ปลอดภัย
ตรวจสอบผลตอบแทน:1
---
ห่วงโซ่ใบรับรอง
0 วินาที:CN = <โดเมนของฉัน>
i:C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation CA เซิร์ฟเวอร์ที่ปลอดภัย
---
ใบรับรองเซิร์ฟเวอร์
-----เริ่มต้นใบรับรอง-----
...gJaprVUs
-----จบใบรับรอง-----
เรื่อง = CN = <โดเมนของฉัน>
Issuer=C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation CA เซิร์ฟเวอร์ที่ปลอดภัย
---
ไม่มีการส่งชื่อ CA ของใบรับรองไคลเอ็นต์
สรุปการลงนามเพียร์: SHA256
ประเภทลายเซ็นเพียร์: RSA-PSS
คีย์อุณหภูมิเซิร์ฟเวอร์: X25519, 253 บิต
---
SSL handshake อ่าน 2192 ไบต์และเขียน 397 ไบต์
ข้อผิดพลาดในการยืนยัน: ไม่สามารถรับใบรับรองผู้ออก
---
ใหม่ TLSv1.3 การเข้ารหัสคือ TLS_AES_256_GCM_SHA384
รหัสสาธารณะของเซิร์ฟเวอร์คือ 2048 บิต
ไม่สนับสนุนการเจรจาใหม่อย่างปลอดภัย
การบีบอัด: ไม่มี
การขยายตัว: ไม่มี
ไม่มีการเจรจา ALPN
ข้อมูลต้นไม่ได้ถูกส่ง
ตรวจสอบรหัสส่งคืน: 2 (ไม่สามารถรับใบรับรองผู้ออก)
---
---
ตั๋วเซสชันใหม่หลังงานจับมือมาถึงแล้ว:
เซสชัน SSL:
โปรโตคอล : TLSv1.3
รหัส : TLS_AES_256_GCM_SHA384
รหัสเซสชัน: 3B8DCD9A603FF577C1E77F40C5D3BCE2B9BAE026EF430566359B0D82353CE1E5
เซสชัน-ID-ctx:
การเริ่มต้นใหม่ PSK: 69E09...34D1
ตัวตน PSK: ไม่มี
คำใบ้ประจำตัว PSK: ไม่มี
ชื่อผู้ใช้ SRP: ไม่มี
คำแนะนำอายุการใช้งานตั๋วเซสชัน TLS: 7200 (วินาที)
ตั๋วเซสชั่น TLS:
0000 - 97 86 ca 30 d9 1e 13 95-51 b3 06 87 9d 9f fe ec ...0....Q.......
...
00d0 - 26 69 ba 7b 58 58 2c da-18 90 c9 8b 9f e2 3f be &i.{XX,.......?.
เวลาเริ่มต้น: 1651046361
หมดเวลา : 7200 (วินาที)
ตรวจสอบรหัสส่งคืน: 2 (ไม่สามารถรับใบรับรองผู้ออก)
ความลับหลักเพิ่มเติม: ไม่
ข้อมูลต้นทางสูงสุด: 0
---
อ่าน R BLOCK
---
ตั๋วเซสชันใหม่หลังงานจับมือมาถึงแล้ว:
เซสชัน SSL:
โปรโตคอล : TLSv1.3
รหัส : TLS_AES_256_GCM_SHA384
รหัสเซสชัน: F834...EE6E
เซสชัน-ID-ctx:
การเริ่มต้นใหม่ PSK: A6FBE...23BF
ตัวตน PSK: ไม่มี
คำใบ้ประจำตัว PSK: ไม่มี
ชื่อผู้ใช้ SRP: ไม่มี
คำแนะนำอายุการใช้งานตั๋วเซสชัน TLS: 7200 (วินาที)
ตั๋วเซสชั่น TLS:
0000 - 97 86 ca 30 d9 1e 13 95-51 b3 06 87 9d 9f fe ec ...0....Q.......
...
00d0 - a9 74 d9 44 c8 40 43 11-48 32 1e e2 2a 8f b9 bb [email protected]..*...
เวลาเริ่มต้น: 1651046361
หมดเวลา : 7200 (วินาที)
ตรวจสอบรหัสส่งคืน: 2 (ไม่สามารถรับใบรับรองผู้ออก)
ความลับหลักเพิ่มเติม: ไม่
ข้อมูลต้นทางสูงสุด: 0
---
อ่าน R BLOCK
* ตกลง [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID เปิดใช้งาน IDLE LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot (Raspbian) พร้อมแล้ว
* BYE ถูกตัดการเชื่อมต่อเนื่องจากไม่ได้ใช้งาน
ปิด
สำหรับความพยายามอื่น ๆ
openssl s_client -เชื่อมต่อ <โดเมนของฉัน>:993 -ชื่อเซิร์ฟเวอร์ <โดเมนของฉัน> -CApath /etc/ssl/certs/ | grep 'รหัสส่งคืน'
ฉันได้รับผลลัพธ์เดียวกัน:
ความลึก=0 CN = <โดเมนของฉัน>
ตรวจสอบข้อผิดพลาด: num=20: ไม่สามารถรับใบรับรองผู้ออกในท้องถิ่น
...
..
.
เวลาเริ่มต้น: 1651049986
หมดเวลา : 7200 (วินาที)
ตรวจสอบรหัสส่งคืน: 21 (ไม่สามารถตรวจสอบใบรับรองใบแรกได้)
ความลับหลักเพิ่มเติม: ไม่
ข้อมูลต้นทางสูงสุด: 0
ของฉัน
/etc/dovecot/conf.d/10-ssl.conf
มี cfg ขั้นต่ำ
ssl = จำเป็น
ssl_cert = </etc/apache2/ssl/cert_2021.crt
ssl_key = </etc/apache2/ssl/cert_2021.key
ssl_client_ca_file = /etc/apache2/ssl/cert_2021.ca-bundle
ssl_dh = </usr/share/dovecot/dh.pem
อัปเดต:
หลังจากป้อนข้อมูลของคุณ กังวล ฉันโยนข้อมูลทั้งหมดลงในไฟล์เดียว หมายถึงข้อมูล crt, คีย์และ ca-bundle อย่างสวยงามและราบรื่นด้วยการคัดลอก + วาง บันทึกไว้ด้านล่าง /etc/dovecot/private
โดยไม่มีสัญลักษณ์ใดๆ ภายใต้ /etc/dovecot/conf.d/10-ssl.conf
ฉันตั้งค่า
ssl_cert = </etc/dovecot/private/all_certs_in_one.txt
#ssl_client_ca_file = /etc/apache2/ssl/es_2021.ca-bundle
และฉันลองคำสั่ง
openssl s_client -showcerts 6-เชื่อมต่อ <โดเมนของฉัน>:993 -ชื่อเซิร์ฟเวอร์ <โดเมนของฉัน>
ฉันได้รับผลลัพธ์นั้น มีอะไรมากกว่าอันสุดท้ายแน่นอน...
เชื่อมต่อแล้ว(00000003)
เขียน:errno=104
---
ไม่มีใบรับรองเพื่อน
---
ไม่มีการส่งชื่อ CA ของใบรับรองไคลเอ็นต์
---
SSL handshake อ่าน 0 ไบต์และเขียน
322 ไบต์
การยืนยัน: ตกลง
---
ใหม่ (ไม่มี) รหัสคือ (ไม่มี)
ไม่สนับสนุนการเจรจาใหม่อย่างปลอดภัย
การบีบอัด: ไม่มี
การขยายตัว: ไม่มี
ไม่มีการเจรจา ALPN
ข้อมูลต้นไม่ได้ถูกส่ง
ตรวจสอบรหัสส่งคืน: 0 (ตกลง)
---
อัปเดต - ด้วยโซลูชันครึ่งหนึ่ง
นาโน mkcert.sh
#!/bin/sh
# สร้างใบรับรองที่ลงนามด้วยตนเอง
# แก้ไข dovecot-openssl.cnf ก่อนที่จะเรียกใช้สิ่งนี้
อูมาสก์ 077
OPENSSL=${OPENSSL-openssl}
SSLDIR=${SSLDIR-/etc/ssl}
OPENSSLCONFIG=${OPENSSLCONFIG-dovecot-openssl.cnf}
CERTDIR=$SSLDIR/ใบรับรอง
KEYDIR=$SSLDIR/ส่วนตัว
CERTFILE=$CERTDIR/dovecot.pem
KEYFILE=$KEYDIR/dovecot.pem
ถ้า [ ! -d $CERTDIR ]; แล้ว
echo "ไม่มีไดเรกทอรี $SSLDIR/certs"
ทางออก 1
ไฟ
ถ้า [ ! -d $KEYDIR ]; แล้ว
echo "ไม่มี $SSLDIR/ไดเรกทอรีส่วนตัว"
ทางออก 1
ไฟ
ถ้า [ -f $ใบรับรอง ]; แล้ว
echo "$CERTFILE มีอยู่แล้ว ไม่สามารถเขียนทับได้"
ทางออก 1
ไฟ
ถ้า [ -f $KEYFILE ]; แล้ว
echo "$KEYFILE มีอยู่แล้ว ไม่สามารถเขียนทับได้"
ทางออก 1
ไฟ
$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE วัน 3650 || ทางออก 2
chmod 0600 $KEYFILE
เสียงสะท้อน
$OPENSSL x509 -หัวเรื่อง -ลายนิ้วมือ -ไม่มี -ใน $CERTFILE || ทางออก 2
nano dovecot-openssl.cnf
[ ต้องการ ]
default_bits = 2048
encrypt_key = ใช่
Distributed_name = req_dn
x509_extensions = cert_type
พรอมต์ = ไม่
[ req_dn ]
# ประเทศ (รหัส 2 ตัวอักษร)
#C=FI
# ชื่อรัฐหรือจังหวัด (ชื่อเต็ม)
#ST=
# ชื่อท้องที่ (เช่น เมือง)
#L=เฮลซิงกิ
# องค์กร (เช่น บริษัท )
O=<ชื่อบริษัทของฉัน>
# ชื่อหน่วยขององค์กร (เช่น ส่วน)
OU=เซิร์ฟเวอร์ IMAP
# ชื่อสามัญ (*.example.com ก็ได้)
CN=mail.<ชื่อโดเมนของคุณ>
# อีเมลติดต่อ [email protected]
emailAddress=support@<ชื่อโดเมนของคุณ>
[ ใบรับรองประเภท ]
nsCertType = เซิร์ฟเวอร์
สร้าง symlink:
ln -s /etc/ssl/certs/dovecot.pem /etc/dovecot/private/dovecot_pem_sym.pem
ln -s /etc/ssl/private/dovecot.pem /etc/dovecot/private/dovecot_pem_sym.key
นาโน /etc/dovecot/conf.d/10-ssl.conf
ssl = จำเป็น
ssl_cert = </etc/dovecot/private/dovecot_pem_sym.pem
ssl_key = </etc/dovecot/private/dovecot_pem_sym.key
#ssl_client_ca_dir = /etc/ssl/certs
#ssl_client_ca_file =
#ssl_dh = </usr/share/dovecot/dh.pem
เริ่มต้นใหม่
systemctl รีสตาร์ท dovecot
ทดสอบ
openssl s_client -showcerts -เชื่อมต่อ <YOUR mail.DOMAIN>:993 -servername <YOUR mail.DOMAIN>
รหัสข้อผิดพลาดคือ
ตรวจสอบรหัสส่งคืน: 18 (ใบรับรองที่ลงนามด้วยตนเอง)
แต่นั่นก็ดีกว่าไม่มีอะไรเลย =/ ใบรับรอง apache ของฉันใช้งานไม่ได้ แต่ใช่ ตะเข็บที่เราไม่สามารถทำงานได้ทุกอย่าง =(
เปล่า อย่าลืมตั้งค่าใน Outlook เป็นตัวอย่าง @cfg กระบวนการ
ถึง SSL/TLS
ไม่อัตโนมัติ