นี่คือคำสั่ง gnutls-serv ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
Gnutls-เสิร์ฟ - เซิร์ฟเวอร์ GnuTLS
เรื่องย่อ
Gnutls-เสิร์ฟ [- ธง] [-ธง [ความคุ้มค่า---ตัวเลือก-ชื่อ- -ความคุ้มค่า]]
อาร์กิวเมนต์ทั้งหมดจะต้องเป็นตัวเลือก
DESCRIPTION
โปรแกรมเซิร์ฟเวอร์ที่รับฟังการเชื่อมต่อ TLS ขาเข้า
OPTIONS
-d จำนวน, --debug=จำนวน
เปิดใช้งานการดีบัก ตัวเลือกนี้ใช้ตัวเลขจำนวนเต็มเป็นอาร์กิวเมนต์ มูลค่า
of จำนวน ถูกจำกัดให้เป็น:
ในช่วง 0 ถึง 9999
ระบุระดับการดีบัก
--ไม่มีตั๋ว
ไม่รับตั๋วเซสชัน
-g, --สร้าง
สร้างพารามิเตอร์ Diffie-Hellman
-q, --เงียบ
ระงับข้อความบางข้อความ
--พยักหน้า อย่าใช้ฐานข้อมูลการเริ่มต้นใหม่
--http ทำหน้าที่เป็นเซิร์ฟเวอร์ HTTP
--เสียงสะท้อน ทำหน้าที่เป็นเซิร์ฟเวอร์ Echo
-u, --อู๊ด
ใช้ DTLS (datagram TLS) ผ่าน UDP
--มธ=จำนวน
ตั้งค่า MTU สำหรับดาตาแกรม TLS ตัวเลือกนี้ใช้ตัวเลขจำนวนเต็มเป็นอาร์กิวเมนต์
คุณค่าของ จำนวน ถูกจำกัดให้เป็น:
ในช่วง 0 ถึง 17000
--srtp-โปรไฟล์=เชือก
เสนอโปรไฟล์ SRTP
-a, --disable-client-cert
อย่าขอใบรับรองไคลเอ็นต์
-r, --require-client-cert
ต้องมีใบรับรองไคลเอ็นต์
--ตรวจสอบ-ลูกค้า-ใบรับรอง
หากส่งใบรับรองไคลเอ็นต์ให้ตรวจสอบ ..
ไม่ต้องการ แต่ถ้ามีการส่งใบรับรองไคลเอนต์ให้ตรวจสอบและปิด
การเชื่อมต่อถ้าไม่ถูกต้อง
-b, --การเต้นของหัวใจ
เปิดใช้งานการสนับสนุนการเต้นของหัวใจ
ping ไคลเอนต์เป็นประจำผ่านข้อความส่วนขยาย heartbeat
--x509fmtder
ใช้รูปแบบ DER สำหรับใบรับรองที่จะอ่าน
--ลำดับความสำคัญ=เชือก
สตริงลำดับความสำคัญ
อัลกอริทึมและโปรโตคอล TLS เพื่อเปิดใช้งาน คุณสามารถใช้ชุดการเข้ารหัสที่กำหนดไว้ล่วงหน้าได้
เช่น ประสิทธิภาพ ปกติ SECURE128 SECURE256 ค่าดีฟอลต์คือ NORMAL
ตรวจสอบคู่มือ GnuTLS ในส่วน "สตริงลำดับความสำคัญ" สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ
คีย์เวิร์ดที่อนุญาต
--ธพาราม=ไฟล์
ไฟล์ DH params ที่จะใช้
--x509cafile=เชือก
ไฟล์ใบรับรองหรือ URL PKCS #11 ที่จะใช้
--x509crlfile=ไฟล์
ไฟล์ CRL ที่จะใช้
--pgpkeyfile=ไฟล์
ไฟล์คีย์ PGP ที่จะใช้
--pgpkeyring=ไฟล์
ไฟล์พวงกุญแจ PGP ที่จะใช้
--pgpcertfile=ไฟล์
ไฟล์ PGP Public Key (ใบรับรอง) ที่จะใช้
--x509keyfile=เชือก
ไฟล์คีย์ X.509 หรือ URL PKCS #11 ที่จะใช้
--x509certfile=เชือก
ไฟล์ใบรับรอง X.509 หรือ URL PKCS #11 ที่จะใช้
--x509dsakeyfile=เชือก
ไฟล์คีย์ X.509 ทางเลือกหรือ URL PKCS #11 ที่จะใช้
--x509dsacertfile=เชือก
ไฟล์ใบรับรอง X.509 ทางเลือกหรือ URL PKCS #11 ที่จะใช้
--x509ecckeyfile=เชือก
ไฟล์คีย์ X.509 ทางเลือกหรือ URL PKCS #11 ที่จะใช้
--x509ecccertfile=เชือก
ไฟล์ใบรับรอง X.509 ทางเลือกหรือ URL PKCS #11 ที่จะใช้
--pgpsubkey=เชือก
คีย์ย่อย PGP ที่จะใช้ (ฐานสิบหกหรืออัตโนมัติ)
--srppasswd=ไฟล์
ไฟล์รหัสผ่าน SRP ที่จะใช้
--srppasswdconf=ไฟล์
ไฟล์การกำหนดค่ารหัสผ่าน SRP ที่จะใช้
--pskpasswd=ไฟล์
ไฟล์รหัสผ่าน PSK ที่จะใช้
--pskhint=เชือก
คำแนะนำประจำตัว PSK ที่จะใช้
--ocsp-ตอบสนอง=ไฟล์
การตอบสนองของ OCSP เพื่อส่งไปยังไคลเอนต์
หากไคลเอ็นต์ร้องขอการตอบสนอง OCSP ให้ส่งคืนข้อมูลจากไฟล์นี้ไปยังไคลเอ็นต์
-p จำนวน, --ท่า=จำนวน
พอร์ตที่จะเชื่อมต่อ ตัวเลือกนี้ใช้ตัวเลขจำนวนเต็มเป็นอาร์กิวเมนต์
-l, --รายการ
พิมพ์รายการอัลกอริทึมและโหมดที่รองรับ
พิมพ์รายการอัลกอริทึมและโหมดที่รองรับ หากกำหนดลำดับความสำคัญของสตริง
จากนั้นระบบจะแสดงเฉพาะชุดรหัสที่เปิดใช้งานเท่านั้น
--ผู้ให้บริการ=ไฟล์
ระบุไลบรารีผู้ให้บริการ PKCS #11
สิ่งนี้จะแทนที่ตัวเลือกเริ่มต้นใน /etc/gnutls/pkcs11.conf
-h, --ช่วยด้วย
แสดงข้อมูลการใช้งานและออก
-!, --เพิ่มเติม-ช่วย
ส่งข้อมูลการใช้งานเพิ่มเติมผ่านเพจเจอร์
-v [{วี|ค|น --รุ่น [{วี|ค|น-
เวอร์ชันเอาต์พุตของโปรแกรมและออก โหมดเริ่มต้นคือ `v' ซึ่งเป็นเวอร์ชันธรรมดา
โหมด `c' จะพิมพ์ข้อมูลลิขสิทธิ์ และ `n' จะพิมพ์ลิขสิทธิ์ฉบับเต็ม
แจ้งให้ทราบ
ตัวอย่าง
การเรียกใช้เซิร์ฟเวอร์ TLS ของคุณเองโดยใช้ GnuTLS จะมีประโยชน์เมื่อทำการดีบักไคลเอ็นต์และ/หรือ
GnuTLS เอง ส่วนนี้อธิบายวิธีการใช้งาน Gnutls-เสิร์ฟ เป็นเซิร์ฟเวอร์ HTTPS ธรรมดา
เซิร์ฟเวอร์พื้นฐานที่สุดสามารถเริ่มต้นได้ดังนี้:
gnutls-serv --http --priority "ปกติ:+ANON-ECDH:+ANON-DH"
โดยจะรองรับเฉพาะชุดรหัสที่ไม่ระบุตัวตน ซึ่งไคลเอ็นต์ TLS จำนวนมากปฏิเสธที่จะใช้
ขั้นตอนต่อไปคือการเพิ่มการรองรับสำหรับ X.509 ขั้นแรก เราสร้าง CA:
$ certtool --generate-privkey > x509-ca-key.pem
$ echo 'cn = GnuTLS ทดสอบ CA'> ca.tmpl
$ echo 'ca' >> ca.tmpl
$ echo 'cert_signing_key' >> ca.tmpl
$ certtool --generate-self-signed --load-privkey x509-ca-key.pem -- template ca.tmpl --outfile x509-ca.pem
จากนั้นสร้างใบรับรองเซิร์ฟเวอร์ อย่าลืมเปลี่ยนค่า dns_name เป็นชื่อของ
โฮสต์เซิร์ฟเวอร์ของคุณ หรือข้ามคำสั่งนั้นเพื่อหลีกเลี่ยงฟิลด์
$ certtool --generate-privkey > x509-server-key.pem
$ echo 'องค์กร = เซิร์ฟเวอร์ทดสอบ GnuTLS' > server.tmpl
$ echo 'cn = test.gnutls.org' >> server.tmpl
$ echo 'tls_www_server' >> server.tmpl
$ echo 'encryption_key' >> server.tmpl
$ echo 'signing_key' >> server.tmpl
$ echo 'dns_name = test.gnutls.org' >> server.tmpl
$ certtool --generate-certificate --load-privkey x509-server-key.pem --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem --เซิร์ฟเวอร์เทมเพลต tmpl --outfile x509-server.pem
สำหรับใช้ในไคลเอนต์ คุณอาจต้องการสร้างใบรับรองไคลเอนต์ด้วย
$ certtool --generate-privkey > x509-client-key.pem
$ echo 'cn = ไคลเอนต์ทดสอบ GnuTLS' > client.tmpl
$ echo 'tls_www_client' >> client.tmpl
$ echo 'encryption_key' >> client.tmpl
$ echo 'signing_key' >> client.tmpl
$ certtool --generate-certificate --load-privkey x509-client-key.pem --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem -- ไคลเอ็นต์เทมเพลต tmpl --outfile x509-client.pem
เพื่อให้สามารถนำเข้าคีย์/ใบรับรองไคลเอ็นต์ไปยังบางแอปพลิเคชันได้ คุณจะต้อง
แปลงเป็นโครงสร้าง PKCS#12 นอกจากนี้ยังเข้ารหัสคีย์ที่ละเอียดอ่อนด้านความปลอดภัยด้วย
รหัสผ่าน
$ certtool --to-p12 --load-ca-certificate x509-ca.pem --load-privkey x509-client-key.pem --load-certificate x509-client.pem --outder --outfile x509-client .p12
สำหรับไอซิ่ง เราจะสร้างใบรับรองพร็อกซีสำหรับลูกค้าด้วย
$ certtool --generate-privkey > x509-proxy-key.pem
$ echo 'cn = GnuTLS ทดสอบพร็อกซีไคลเอนต์' > proxy.tmpl
$ certtool --generate-proxy --load-privkey x509-proxy-key.pem --load-ca-certificate x509-client.pem --load-ca-privkey x509-client-key.pem --load-certificate x509-client.pem -- template proxy.tmpl --outfile x509-proxy.pem
จากนั้นเริ่มเซิร์ฟเวอร์อีกครั้ง:
$ gnutls-serv --http --x509cafile x509-ca.pem --x509keyfile x509-server-key.pem --x509certfile x509-server.pem
ลองเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้เว็บเบราว์เซอร์ของคุณ โปรดทราบว่าเซิร์ฟเวอร์รับฟังพอร์ต
5556 ตามค่าเริ่มต้น
ในขณะที่คุณอยู่ที่นั่น หากต้องการอนุญาตการเชื่อมต่อโดยใช้ DSA คุณสามารถสร้างคีย์ DSA และ
ใบรับรองสำหรับเซิร์ฟเวอร์ ข้อมูลประจำตัวเหล่านี้จะใช้ในตัวอย่างสุดท้ายด้านล่าง
$ certtool --generate-privkey --dsa > x509-server-key-dsa.pem
$ certtool -- สร้างใบรับรอง --load-privkey x509-server-key-dsa.pem --load-ca-certificate x509-ca.pem --load-ca-privkey x509-ca-key.pem -- แม่แบบ server.tmpl --outfile x509-server-dsa.pem
ขั้นตอนต่อไปคือการสร้างข้อมูลรับรอง OpenPGP สำหรับเซิร์ฟเวอร์
gpg --gen-คีย์
จดบันทึกตัวระบุคีย์ OpenPGP ของคีย์ที่สร้างขึ้นใหม่ นี่คือ
5D1D14D8. คุณจะต้องส่งออกคีย์เพื่อให้ GnuTLS ใช้งานได้
gpg -a --export 5D1D14D8 > openpgp-server.txt
gpg --export 5D1D14D8 > openpgp-server.bin
gpg --export-secret-keys 5D1D14D8> openpgp-server-key.bin
gpg -a --export-secret-keys 5D1D14D8 > openpgp-server-key.txt
เริ่มต้นเซิร์ฟเวอร์ด้วยการสนับสนุนข้อมูลรับรอง OpenPGP:
gnutls-serv --http --priority NORMAL:+CTYPE-OPENPGP --pgpkeyfile openpgp-server-key.txt --pgpcertfile openpgp-server.txt
ขั้นตอนต่อไปคือการเพิ่มการรองรับการพิสูจน์ตัวตน SRP ต้องใช้ไฟล์รหัสผ่าน SRP
สร้างด้วย srptool. ในการเริ่มต้นเซิร์ฟเวอร์ด้วยการสนับสนุน SRP:
gnutls-serv --http --priority ปกติ:+SRP-RSA:+SRP --srppasswdconf srp-tpasswd.conf --srppasswd srp-passwd.txt
มาเริ่มเซิร์ฟเวอร์ด้วยการสนับสนุน PSK กัน นี้จะต้องมีไฟล์รหัสผ่านที่สร้างขึ้น
สีสดสวย psktool.
gnutls-serv --http --priority ปกติ:+ECDHE-PSK:+PSK --pskpasswd psk-passwd.txt
สุดท้าย เราเริ่มเซิร์ฟเวอร์ด้วยพารามิเตอร์ก่อนหน้าทั้งหมด และคุณได้รับคำสั่งนี้:
gnutls-serv --http --priority NORMAL:+PSK:+SRP:+CTYPE-OPENPGP --x509cafile x509-ca.pem --x509keyfile x509-server-key.pem --x509certfile x509-server.pem --x509dsakeyfile x509-server-key-dsa.pem --x509dsacertfile x509-server-dsa.pem --pgpkeyfile openpgp-server-key.txt --pgpcertfile openpgp-server.txt --srppasswdconf srp-tpasswd.conf --srppasswd srp passwd.txt --pskpasswd psk-passwd.txt
EXIT สถานภาพ
จะส่งคืนค่าออกจากค่าใดค่าหนึ่งต่อไปนี้:
0 (ออก_สำเร็จ)
การดำเนินการโปรแกรมที่ประสบความสำเร็จ
1 (ทางออก_ล้มเหลว)
การดำเนินการล้มเหลวหรือไวยากรณ์คำสั่งไม่ถูกต้อง
70 (EX_ซอฟต์แวร์)
libopts มีข้อผิดพลาดในการปฏิบัติงานภายใน กรุณารายงานไปยัง autogen-
[ป้องกันอีเมล]. ขอบคุณ
ใช้ gnutls-serv ออนไลน์โดยใช้บริการ onworks.net
