OPENSSL-S_SERVER(1ssl) OpenSSL OPENSSL-S_SERVER(1ssl) نام (NAME) openssl-s_server - برنامه سرور SSL/TLS خلاصه دستور (SYNOPSIS) openssl s_server [-help] [-port +int] [-accept val] [-unix val] [-4] [-6] [-unlink] [-context val] [-verify int] [-Verify int] [-cert infile] [-cert2 infile] [-certform DER|PEM|P12] [-cert_chain infile] [-build_chain] [-serverinfo val] [-key filename|uri] [-key2 filename|uri] [-keyform DER|PEM|P12|ENGINE] [-pass val] [-dcert infile] [-dcertform DER|PEM|P12] [-dcert_chain infile] [-dkey filename|uri] [-dkeyform DER|PEM|P12|ENGINE] [-dpass val] [-nbio_test] [-crlf] [-debug] [-msg] [-msgfile outfile] [-state] [-nocert] [-quiet] [-no_resume_ephemeral] [-www] [-WWW] [-http_server_binmode] [-no_ca_names] [-ignore_unexpected_eof] [-servername] [-servername_fatal] [-tlsextdebug] [-HTTP] [-id_prefix val] [-keymatexport val] [-keymatexportlen +int] [-CRL infile] [-CRLform DER|PEM] [-crl_download] [-chainCAfile infile] [-chainCApath dir] [-chainCAstore uri] [-verifyCAfile infile] [-verifyCApath dir] [-verifyCAstore uri] [-no_cache] [-ext_cache] [-verify_return_error] [-verify_quiet] [-ign_eof] [-no_ign_eof] [-no_ems] [-status] [-status_all] [-status_verbose] [-status_timeout int] [-proxy [http[s]://][userinfo@]host[:port][/path][?query][#fragment]] [-no_proxy addresses] [-status_url val] [-status_file infile] [-ssl_config val] [-trace] [-security_debug] [-security_debug_verbose] [-brief] [-rev] [-async] [-max_send_frag +int] [-split_send_frag +int] [-max_pipelines +int] [-naccept +int] [-read_buf +int] [-no_tx_cert_comp] [-no_rx_cert_comp] [-dhparam infile] [-nbio] [-psk_identity val] [-psk_hint val] [-psk val] [-psk_session file] [-srpvfile infile] [-srpuserseed val] [-timeout] [-mtu +int] [-listen] [-sctp] [-sctp_label_bug] [-use_srtp val] [-no_dhe] [-nextprotoneg val] [-alpn val] [-ktls] [-sendfile] [-zerocopy_sendfile] [-keylogfile outfile] [-recv_max_early_data int] [-max_early_data int] [-early_data] [-stateless] [-anti_replay] [-no_anti_replay] [-num_tickets] [-tfo] [-cert_comp] [-nameopt option] [-no_ssl3] [-no_tls1] [-no_tls1_1] [-no_tls1_2] [-no_tls1_3] [-ssl3] [-tls1] [-tls1_1] [-tls1_2] [-tls1_3] [-dtls] [-dtls1] [-dtls1_2] [-allow_proxy_certs] [-attime timestamp] [-no_check_time] [-check_ss_sig] [-crl_check] [-crl_check_all] [-explicit_policy] [-extended_crl] [-ignore_critical] [-inhibit_any] [-inhibit_map] [-partial_chain] [-policy arg] [-policy_check] [-policy_print] [-purpose purpose] [-suiteB_128] [-suiteB_128_only] [-suiteB_192] [-trusted_first] [-no_alt_chains] [-use_deltas] [-auth_level num] [-verify_depth num] [-verify_email email] [-verify_hostname hostname] [-verify_ip ip] [-verify_name name] [-x509_strict] [-issuer_checks] [-bugs] [-no_comp] [-comp] [-no_ticket] [-serverpref] [-client_renegotiation] [-legacy_renegotiation] [-no_renegotiation] [-no_resumption_on_reneg] [-legacy_server_connect] [-no_legacy_server_connect] [-no_etm] [-allow_no_dhe_kex] [-prefer_no_dhe_kex] [-prioritize_chacha] [-strict] [-sigalgs algs] [-client_sigalgs algs] [-groups groups] [-curves curves] [-named_curve curve] [-cipher ciphers] [-ciphersuites 1.3ciphers] [-min_protocol minprot] [-max_protocol maxprot] [-record_padding padding] [-debug_broken_protocol] [-no_middlebox] [-xkey infile] [-xcert file] [-xchain file] [-xchain_build file] [-xcertform DER|PEM]> [-xkeyform DER|PEM]> [-CAfile file] [-no-CAfile] [-CApath dir] [-no-CApath] [-CAstore uri] [-no-CAstore] [-rand files] [-writerand file] [-engine id] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq] [-enable_server_rpk] [-enable_client_rpk] توضیحات (DESCRIPTION) این دستور یک سرور همگانی SSL/TLS را پیاده‌سازی می‌کند که با استفاده از SSL/TLS به اتصالات روی یک درگاه مشخص گوش می‌دهد. گزینه‌ها (OPTIONS) علاوه بر گزینه‌های زیر، این دستور از گزینه‌های عمومی و مخصوص سرور که در بخش "دستورات خط فرمان پشتیبانی‌شده" در SSL_CONF_cmd(3) مستند شده‌اند نیز پشتیبانی می‌کند. -help چاپ یک پیام راهنمای نحوه استفاده. -port +int درگاه TCP برای گوش دادن به اتصالات. در صورت مشخص نشدن، از 4433 استفاده می‌شود. -accept val میزبان و درگاه TCP اختیاری برای گوش دادن به اتصالات. در صورت مشخص نشدن، از *:4433 استفاده می‌شود. -unix val سوکت دامنه یونیکس برای پذیرش اتصالات. -4 فقط استفاده از IPv4. -6 فقط استفاده از IPv6. -unlink برای گزینه -unix، ابتدا هر سوکت موجود را حذف (unlink) می‌کند. -context val شناسه زمینه (context id) اس‌اس‌ال را تنظیم می‌کند. می‌توان هر مقدار رشته‌ای به آن اختصاص داد. اگر این گزینه مشخص نشود، یک مقدار پیش‌فرض استفاده خواهد شد. -verify int, -Verify int عمق اعتبارسنجی مورد استفاده. این مقدار حداکثر طول زنجیره گواهی کلاینت را مشخص کرده و باعث می‌شود سرور از کلاینت درخواست گواهی کند. با گزینه -verify گواهی درخواست می‌شود اما کلاینت ملزم به ارسال آن نیست؛ با گزینه -Verify کلاینت باید حتماً گواهی ارائه دهد وگرنه خطایی رخ می‌دهد. اگر مجموعه رمز نتواند گواهی کلاینت درخواست کند (برای مثال یک مجموعه رمز ناشناس یا PSK)، این گزینه هیچ تأثیری ندارد. به‌طور پیش‌فرض، اعتبارسنجی هر گواهی ارائه‌شده کلاینت و زنجیره آن بر اساس هدف کلاینت (D)TLS ("sslclient") انجام می‌شود. برای جزئیات بیشتر به بخش "پسوندهای گواهی" در openssl-verification-options(1) مراجعه کنید. -cert infile گواهی مورد استفاده؛ اغلب مجموعه‌های رمز سرور نیازمند استفاده از یک گواهی هستند و برخی به گواهی با نوع کلید عمومی خاصی نیاز دارند: برای مثال مجموعه‌های رمز DSS نیازمند گواهی حاوی کلید DSS (DSA) هستند. در صورت مشخص نشدن، از نام فایل server.pem استفاده خواهد شد. -cert2 infile فایل گواهی مورد استفاده برای servername؛ پیش‌فرض "server2.pem" است. -certform DER|PEM|P12 قالب فایل گواهی سرور؛ به‌طور پیش‌فرض نامشخص است. برای جزئیات بیشتر به openssl-format-options(1) مراجعه کنید. -cert_chain یک فایل یا شناسه یکتای منبع (URI) از گواهی‌های غیرقابل‌اعتماد برای استفاده هنگام تلاش جهت ساخت زنجیره گواهی مرتبط با گواهی مشخص‌شده از طریق گزینه -cert. این گواهی‌های غیرقابل‌اعتماد به کلاینت‌ها ارسال شده و برای تولید درخواست‌های وضعیت گواهی (معروف به OCSP stapling) استفاده می‌شوند. ورودی می‌تواند در قالب PEM، DER یا PKCS#12 باشد. -build_chain مشخص می‌کند که آیا برنامه باید زنجیره گواهی سرور را جهت ارائه به کلاینت بسازد یا خیر. -serverinfo val فایلی حاوی یک یا چند بلوک از داده‌های PEM. هر بلوک PEM باید یک افزونه TLS ServerHello را کدگذاری کند (۲ بایت نوع، ۲ بایت طول، به همراه «طول» بایت از داده‌های افزونه). اگر کلاینت یک افزونه خالی TLS ClientHello منطبق با این نوع ارسال کند، افزونه متناظر ServerHello بازگردانده خواهد شد. -key filename|uri کلید خصوصی مورد استفاده. در صورت مشخص نشدن، از فایل گواهی استفاده خواهد شد. -key2 filename|uri فایل کلید خصوصی مورد استفاده برای servername در صورتی که از طریق -cert2 مشخص نشده باشد. -keyform DER|PEM|P12|ENGINE قالب کلید؛ به‌طور پیش‌فرض نامشخص است. برای جزئیات بیشتر به openssl-format-options(1) مراجعه کنید. -pass val منبع گذرواژه کلید خصوصی و فایل گواهی. برای اطلاعات بیشتر درباره قالب val، به openssl-passphrase-options(1) مراجعه کنید. -dcert infile, -dkey filename|uri تعیین یک گواهی و کلید خصوصی اضافی؛ این گزینه‌ها همانند گزینه‌های -cert و -key عمل می‌کنند، به جز اینکه در صورت مشخص نشدن، هیچ مقدار پیش‌فرضی وجود ندارد (از هیچ گواهی و کلید اضافی استفاده نمی‌شود). همان‌طور که در بالا ذکر شد، برخی از مجموعه‌های رمز نیازمند گواهی حاوی کلیدی از یک نوع خاص هستند. برخی از مجموعه‌های رمز به گواهی حاوی کلید RSA و برخی به کلید DSS (DSA) نیاز دارند. با استفاده از گواهی‌ها و کلیدهای RSA و DSS، یک سرور می‌تواند با استفاده از گواهی مناسب، از کلاینت‌هایی که فقط از مجموعه‌های رمز RSA یا DSS پشتیبانی می‌کنند، پشتیبانی کند. -dcert_chain یک فایل یا شناسه یکتای منبع (URI) از گواهی‌های غیرقابل‌اعتماد برای استفاده هنگام تلاش جهت ساخت زنجیره گواهی سرور، زمانی که گواهی مشخص‌شده از طریق گزینه -dcert در حال استفاده است. ورودی می‌تواند در قالب PEM، DER یا PKCS#12 باشد. -dcertform DER|PEM|P12 قالب فایل گواهی اضافی؛ به‌طور پیش‌فرض نامشخص است. برای جزئیات بیشتر به openssl-format-options(1) مراجعه کنید. -dkeyform DER|PEM|P12|ENGINE قالب کلید خصوصی اضافی؛ به‌طور پیش‌فرض نامشخص است. برای جزئیات بیشتر به openssl-format-options(1) مراجعه کنید. -dpass val عبارت عبور برای کلید خصوصی و گواهی اضافی. برای اطلاعات بیشتر درباره قالب val، به openssl-passphrase-options(1) مراجعه کنید. -nbio_test ورودی/خروجی مسدودنشدنی (غیرمسدودکننده) را آزمایش می‌کند. -crlf این گزینه کاراکتر تعویض خط (line feed) دریافتی از ترمینال را به CR+LF تبدیل می‌کند. -debug اطلاعات اشکال‌زدایی گسترده از جمله تخلیه هگزادسیمال (hex dump) تمام ترافیک را چاپ می‌کند. -security_debug خروجی فریم‌ورک امنیتی SSL/TLS را چاپ می‌کند. -security_debug_verbose خروجی بیشتری از فریم‌ورک امنیتی SSL/TLS را چاپ می‌کند. -msg تمام پیام‌های پروتکل را همراه با تخلیه هگز (hex dump) نمایش می‌دهد. -msgfile outfile فایلی برای ارسال خروجی -msg یا -trace به آن؛ در حالت پیش‌فرض خروجی استاندارد است. -state وضعیت‌های نشست SSL را چاپ می‌کند. -CRL infile فایل CRL مورد استفاده. -CRLform DER|PEM فرمت فایل CRL؛ در حالت پیش‌فرض تعیین‌نشده است. برای جزئیات بیشتر به openssl-format-options(1) مراجعه کنید. -crl_download فهرست‌های ابطال گواهی (CRL) را از نقاط توزیع ارائه‌شده در افزونه‌های CDP گواهی‌ها دانلود می‌کند. -verifyCAfile filename یک فایل با فرمت PEM حاوی گواهی‌های معتبر CA (ریشه و/یا میانی) که برای اعتبارسنجی زنجیره گواهی کلاینت استفاده می‌شود. -verifyCApath dir یک دایرکتوری حاوی گواهی‌های معتبر برای استفاده در اعتبارسنجی گواهی‌های کلاینت. این دایرکتوری باید در «فرمت هش» (hash format) باشد؛ برای اطلاعات بیشتر به openssl-verify(1) مراجعه کنید. -verifyCAstore uri شناسه یکتای منبع (URI) یک مخزن حاوی گواهی‌های معتبر برای استفاده در اعتبارسنجی گواهی‌های کلاینت. هنگامی که هر یک از گزینه‌های -verifyCAfile، -verifyCApath یا -verifyCAstore مشخص شوند، در یک مخزن اعتبارسنجی جداگانه (از طریق SSL_CTX_set1_verify_cert_store(3)) بارگذاری شده و به جای مخزن ساخته‌شده از -CAfile، -CApath و -CAstore برای اعتبارسنجی گواهی کلاینت استفاده می‌شوند. توجه داشته باشید که -CAfile تنها منبع نام‌های مراجع صدور گواهی (CA) مجاز و صادرکننده‌ای است که در طول مصافحه در پیام Certificate Request برای کلاینت ارسال می‌شوند؛ گزینه‌های -CApath، -CAstore و گزینه‌های -verifyCA* در این فهرست نقشی ندارند. -chainCAfile file یک فایل با فرمت PEM حاوی گواهی‌های معتبر برای استفاده هنگام تلاش برای ساخت زنجیره گواهی سرور. -chainCApath dir یک دایرکتوری حاوی گواهی‌های معتبر برای استفاده در ساخت زنجیره گواهی سرور که به کلاینت ارائه می‌شود. این دایرکتوری باید در «فرمت هش» (hash format) باشد؛ برای اطلاعات بیشتر به openssl-verify(1) مراجعه کنید. -chainCAstore uri شناسه یکتای منبع (URI) یک مخزن حاوی گواهی‌های معتبر برای استفاده در ساخت زنجیره گواهی سرور که به کلاینت ارائه می‌شود. این URI ممکن است یک گواهی تکی یا مجموعه‌ای از آنها را نشان دهد. با URIهایی در طرح‌واره "file:"، این گزینه بسته به اینکه URI نشان‌دهنده یک دایرکتوری یا یک فایل تکی باشد، مانند -chainCAfile یا -chainCApath عمل می‌کند. برای اطلاعات بیشتر درباره طرح‌واره "file:" به ossl_store-file(7) مراجعه کنید. -nocert اگر این گزینه تنظیم شود، هیچ گواهی‌ای استفاده نمی‌شود. این کار مجموعه الگوریتم‌های رمزنگاری در دسترس را به موارد ناشناس (در حال حاضر فقط DH ناشناس) محدود می‌کند. -quiet از چاپ اطلاعات نشست و گواهی جلوگیری می‌کند. -no_resume_ephemeral در صورت استفاده از (EC)DH زودگذر (ephemeral)، کش‌کردن و بلیت‌ها را غیرفعال می‌کند. -tlsextdebug تخلیه هگزادسیمال (hex dump) هرگونه افزونه TLS دریافت‌شده از سرور را چاپ می‌کند. -www هنگام اتصال کلاینت، یک پیام وضعیت برای آن ارسال می‌کند. این پیام شامل اطلاعاتی درباره رمزهای مورداستفاده و پارامترهای گوناگون نشست است. خروجی در قالب HTML است، بنابراین این گزینه می‌تواند با یک مرورگر وب استفاده شود. نشانی ویژه "/renegcert" اعتبارسنجی گواهی کلاینت را فعال می‌کند، و "/reneg" به سرور می‌گوید که درخواست مذاکره مجدد (renegotiation) بدهد. -WWW, -HTTP یک وب‌سرور ساده را شبیه‌سازی می‌کند. صفحات به صورت وابسته به دایرکتوری جاری حل می‌شوند؛ به عنوان مثال اگر آدرس "https://myhost/page.html" درخواست شود، فایل ./page.html ارسال خواهد شد. اگر فلگ -HTTP استفاده شود، فایل‌ها مستقیماً ارسال می‌شوند و باید حاوی تمام هدرهای پاسخ HTTP (شامل خط پاسخ وضعیت) باشند. اگر گزینه -WWW استفاده شود، هدرهای پاسخ توسط سرور تولید می‌شوند و پسوند فایل برای تعیین هدر Content-Type بررسی می‌شود. پسوندهای "html"، "htm" و "php" به عنوان "text/html" و سایر موارد به عنوان "text/plain" در نظر گرفته می‌شوند. علاوه بر این، نشانی ویژه "/stats" اطلاعات وضعیت را مانند گزینه -www برمی‌گرداند. -http_server_binmode هنگام عمل کردن به عنوان وب‌سرور (با استفاده از گزینه -WWW یا -HTTP)، فایل‌های درخواستی از سوی کلاینت را در حالت باینری (دودویی) باز می‌کند. -no_ca_names افزونه CA Names در TLS را غیرفعال می‌کند. ممکن است بخواهید به دلایل امنیتی یا به منظور سازگاری با برخی پیاده‌سازی‌های TLS ویندوز که در صورت بزرگ‌تر بودن این افزونه از ۱۰۲۴ بایت کرش می‌کنند، آن را غیرفعال کنید. -ignore_unexpected_eof برخی از پیاده‌سازی‌های TLS هنگام خاموش کردن اتصال، هشدار اجباری close_notify را ارسال نمی‌کنند. اگر برنامه سعی کند منتظر هشدار close_notify بماند اما طرف مقابل اتصال را بدون ارسال آن ببندد، خطا تولید می‌شود. هنگامی که این گزینه فعال باشد، طرف مقابل نیازی به ارسال هشدار close_notify ندارد و با یک اتصال بسته‌شده طوری رفتار می‌شود که گویی هشدار close_notify دریافت شده است. برای اطلاعات بیشتر درباره بستن یک اتصال، به SSL_shutdown(3) مراجعه کنید. -servername نام سرور (Servername) برای افزونه TLS از نوع HostName. -servername_fatal در صورت عدم تطابق نام سرور، یک هشدار مهلک (fatal alert) ارسال می‌کند (پیش‌فرض: هشدار اخطار). -id_prefix val شناسه‌های نشست SSL/TLS را با پیشوند val تولید می‌کند. این گزینه عمدتاً برای آزمایش کدهای SSL/TLS (مانند پروکسی‌ها) کاربرد دارد که قصد دارند با چندین سرور کار کنند، در شرایطی که ممکن است هر یک از آنها بازه منحصربه‌فردی از شناسه‌های نشست را تولید نمایند (مثلاً با یک پیشوند خاص). -keymatexport صادر کردن مواد کلیدسازی با استفاده از برچسب. -keymatexportlen صادر کردن تعداد بایت‌های مشخص‌شده از مواد کلیدسازی؛ پیش‌فرض ۲۰ است. -no_cache غیرفعال کردن حافظه موقت (کش) نشست. -ext_cache. غیرفعال کردن کش داخلی، و راه‌اندازی و استفاده از کش خارجی. -verify_return_error خطاهای اعتبارسنجی معمولاً به منظور اشکال‌زدایی تنها یک پیام چاپ کرده و اجازه می‌دهند اتصال ادامه یابد. اگر از این گزینه استفاده شود، خطاهای اعتبارسنجی موجب بستن اتصال می‌شوند. -verify_quiet عدم نمایش خروجی اعتبارسنجی به جز خطاهای اعتبارسنجی. -ign_eof نادیده گرفتن EOF ورودی (پیش‌فرض: هنگامی که -quiet فعال باشد). -no_ign_eof نادیده نگرفتن EOF ورودی. -no_ems غیرفعال کردن مذاکره راز اصلی گسترش‌یافته (Extended Master Secret). -status پشتیبانی از درخواست وضعیت گواهی (معروف به منگنه کردن OCSP یا OCSP stapling) را فعال می‌کند: در صورت درخواست کلاینت، یک پاسخ OCSP برای گواهی برگ (سرور) ارائه می‌شود. -status_all مشابه گزینه قبل، اما برای TLS v1.3 و فراتر از آن، در صورت درخواست کلاینت، پاسخ‌های وضعیت برای تمام گواهی‌های موجود در زنجیره (به جز لنگر اعتماد یا trust anchor) ارائه می‌شود. -status_verbose پشتیبانی از درخواست وضعیت گواهی (معروف به OCSP stapling) را فعال کرده و خروجی مفصلی از پاسخ OCSP ارائه می‌دهد. از گزینه -cert_chain برای مشخص کردن گواهی امضاکننده گواهی سرور که برای درخواست‌های وضعیت گواهی مورد نیاز است، استفاده کنید. -status_timeout int مهلت زمانی (timeout) برای پاسخ OCSP را به int ثانیه تنظیم می‌کند. -proxy [http[s]://][userinfo@]host[:port][/path][?query][#fragment] سرور پروکسی HTTP(S) مورد استفاده برای دسترسی به سرور OCSP، مگر اینکه -no_proxy اعمال شود؛ به توضیحات زیر مراجعه کنید. اگر رشته میزبان یک آدرس IPv6 باشد، باید درون "[" و "]" قرار گیرد. درگاه (پورت) پروکسی در صورت استفاده از طرح "https" به طور پیش‌فرض ۴۴۳ و در غیر این صورت ۸۰ است؛ به جز این موارد، پیشوند اختیاری "http://" یا "https://" نادیده گرفته می‌شود، همچنین هرگونه بخش‌های اطلاعات کاربر (userinfo)، مسیر (path)، پرس‌وجو (query) و قطعه (fragment) نادیده گرفته می‌شوند. در صورت تنظیم بودن، مقدار پیش‌فرض از متغیر محیطی "http_proxy" گرفته می‌شود، در غیر این صورت اگر از TLS استفاده نشود از "HTTP_PROXY"، وگرنه از "https_proxy" در صورت تنظیم، یا "HTTPS_PROXY" استفاده می‌شود. -no_proxy addresses فهرستی از نشانی‌های IP یا نام‌های DNS سرورهایی که نباید از پروکسی HTTP(S) برای آن‌ها استفاده شود، که با کاما یا فاصله‌های خالی از هم جدا شده‌اند (در مورد دوم کل آرگومان باید درون "..." قرار گیرد). مقدار پیش‌فرض در صورت تنظیم بودن از متغیر محیطی "no_proxy" و در غیر این صورت از "NO_PROXY" گرفته می‌شود. -status_url val یک نشانی وب (URL) پاسخ‌دهنده رزرو (fallback) را تنظیم می‌کند تا در صورت عدم وجود نشانی پاسخ‌دهنده در گواهی سرور استفاده شود. بدون این گزینه، اگر گواهی سرور شامل نشانی پاسخ‌دهنده نباشد، خطایی بازگردانده می‌شود. بخش‌های اختیاری userinfo و fragment در نشانی اینترنتی نادیده گرفته می‌شوند. هر بخش پرس‌وجوی (query) داده‌شده به عنوان بخشی از مسیر (path) رسیدگی می‌شود. -status_file infile تمام نشانی‌های پاسخ‌دهنده OCSP از گواهی را لغو کرده و همیشه پاسخ OCSP ذخیره‌شده در فایل را ارائه می‌دهد. این فایل باید در قالب DER باشد. این گزینه می‌تواند چندین بار برای مشخص کردن پاسخ‌های OCSP برای تمام گواهی‌های موجود در زنجیره گواهی سرور استفاده شود. -ssl_config val پیکربندی SSL_CTX با استفاده از مقدار پیکربندی داده‌شده. -trace نمایش خروجی ردگیری (trace) مفصل از پیام‌های پروتکل. -brief ارائه خلاصه‌ای مختصر از پارامترهای اتصال به جای خروجی مفصل و معمول. -rev یک سرور بازتابی (echo) ساده که متن دریافت‌شده را به صورت معکوس بازمی‌فرستد. همچنین گزینه -brief را تنظیم می‌کند. نمی‌تواند همراه با -early_data استفاده شود. -async فعال کردن حالت ناهمگام (asynchronous). عملیات رمزنگاری به صورت ناهمگام انجام خواهند شد. این گزینه تنها زمانی تأثیر خواهد داشت که از طریق گزینه -engine از موتوری با قابلیت ناهمگام نیز استفاده شده باشد. برای اهداف آزمایشی، می‌توان از موتور ناهمگام ساختگی (dasync) استفاده کرد (در صورت دردسترس بودن). -max_send_frag +int حداکثر اندازه قطعه داده (fragment) برای ارسال. برای اطلاعات بیشتر به SSL_CTX_set_max_send_fragment(3) مراجعه کنید. -split_send_frag +int اندازه مورد استفاده برای تقسیم داده‌ها برای خط‌لوله‌های (پایپ‌لاین‌های) رمزگذاری. اگر در یک مرحله داده‌های بیشتری نسبت به این مقدار نوشته شود، به چندین خط‌لوله (پایپ‌لاین) تقسیم می‌شود، حداکثر تا تعداد خط‌لوله‌های تعیین‌شده توسط max_pipelines. این گزینه تنها در صورتی تأثیر دارد که مجموعه رمزنگاری مناسبی مذاکره شده باشد، موتوری که از خط‌لوله پشتیبانی می‌کند بارگذاری شده باشد، و max_pipelines بزرگ‌تر از ۱ باشد. برای اطلاعات بیشتر به SSL_CTX_set_split_send_fragment(3) مراجعه کنید. -max_pipelines +int حداکثر تعداد خط‌لوله‌های (پایپ‌لاین‌های) رمزگذاری/رمزگشایی مورد استفاده. این گزینه تنها زمانی تأثیر دارد که موتوری با قابلیت پشتیبانی از خط‌لوله بارگذاری شده باشد (مانند موتور dasync) و مجموعه رمزنگاری مناسبی مذاکره شده باشد. مقدار پیش‌فرض ۱ است. برای اطلاعات بیشتر به SSL_CTX_set_max_pipelines(3) مراجعه کنید. -naccept +int سرور پس از دریافت تعداد مشخص‌شده‌ای از اتصالات خارج می‌شود؛ پیش‌فرض نامحدود است. -read_buf +int اندازه پیش‌فرض بافر خواندن مورد استفاده برای اتصالات. این گزینه تنها در صورتی تأثیر خواهد داشت که اندازه بافر بزرگ‌تر از اندازه‌ای باشد که در غیر این صورت استفاده می‌شد و خط‌لوله (پایپ‌لاین) در حال استفاده باشد (برای اطلاعات بیشتر به SSL_CTX_set_default_read_buffer_len(3) مراجعه کنید). -no_tx_cert_comp پشتیبانی از ارسال گواهی‌های فشرده‌سازی‌شده در TLSv1.3 را غیرفعال می‌کند. -no_rx_cert_comp پشتیبانی از دریافت گواهی‌های فشرده‌سازی‌شده در TLSv1.3 را غیرفعال می‌کند. -no_comp غیرفعال کردن مذاکره برای فشرده‌سازی TLS. فشرده‌سازی TLS توصیه نمی‌شود و از زمان OpenSSL 1.1.0 به طور پیش‌فرض غیرفعال است. -num_tickets کنترل تعداد بلیت‌هایی (tickets) که پس از یک دست‌تکانی کامل در TLSv1.3 برای کلاینت ارسال می‌شود. تعداد پیش‌فرض بلیت‌ها ۲ است. این گزینه بر تعداد بلیت‌های ارسال‌شده پس از یک دست‌تکانی ازسرگیری تأثیری ندارد. -dhparam infile فایل پارامترهای DH مورد استفاده. مجموعه‌های رمزنگاری زودگذر DH (موسوم به Ephemeral DH) کلیدها را با استفاده از مجموعه‌ای از پارامترهای DH تولید می‌کنند. در صورت عدم تعیین، تلاشی برای بارگذاری پارامترها از فایل گواهی سرور انجام می‌شود. اگر این اقدام ناموفق باشد، از یک مجموعه پارامترهای ایستا که در کد این دستور گنجانده شده استفاده خواهد شد. -nbio ورودی/خروجی (I/O) غیرمسدودکننده را فعال می‌کند. -timeout فعال کردن مهلت‌های زمانی. -mtu تنظیم MTU لایه پیوند (link-layer). -psk_identity val هنگام استفاده از یک مجموعه رمزنگاری PSK، انتظار دارد که کلاینت شناسه هویت PSK مقدار val را ارسال کند و در صورت عدم ارسال هشدار می‌دهد. به طور پیش‌فرض، شناسه PSK مورد انتظار رشته "Client_identity" است. -psk_hint val استفاده از راهنمای شناسه هویت PSK مقدار val هنگام استفاده از یک مجموعه رمزنگاری PSK. -psk val استفاده از کلید PSK مقدار val هنگام استفاده از یک مجموعه رمزنگاری PSK. کلید به صورت یک عدد هگزادسیمال بدون پیشوند 0x مشخص می‌شود، برای مثال -psk 1a2b3c4d. این گزینه باید به منظور استفاده از یک رمزنگار PSK ارائه شود. -psk_session file استفاده از داده‌های SSL_SESSION با کدگذاری pem که در file ذخیره شده است به عنوان مبنای یک PSK. توجه داشته باشید که این گزینه تنها در صورتی کار می‌کند که TLSv1.3 مذاکره شده باشد. -srpvfile فایل اعتبارسنج برای SRP. این گزینه منسوخ شده است. -srpuserseed یک رشته بذر (seed) برای سالت (salt) پیش‌فرض کاربر. این گزینه منسوخ شده است. -listen این گزینه فقط می‌تواند در ارتباط با یکی از گزینه‌های DTLS در بالا استفاده شود. با این گزینه، این دستور برای اتصالات ورودی روی یک پورت UDP به گوش ایستاده (شنود) می‌کند. هر ClientHello دریافتی بررسی می‌شود تا مشخص گردد آیا حاوی یک کوکی است یا خیر. به هر موردی که بدون کوکی باشد، با یک HelloVerifyRequest پاسخ داده خواهد شد. اگر یک ClientHello همراه با کوکی دریافت شود، این دستور به آن همتا متصل شده و دست‌تکانی (هندشیک) را تکمیل خواهد کرد. -sctp استفاده از پروتکل انتقال SCTP به جای UDP در DTLS. باید همراه با -dtls، -dtls1 یا -dtls1_2 به کار رود. این گزینه تنها در صورتی در دسترس است که در OpenSSL پشتیبانی از SCTP فعال شده باشد. -sctp_label_bug استفاده از رفتار نادرست پیاده‌سازی‌های قدیمی‌تر OpenSSL هنگام محاسبه اسرار مشترک جفت‌نقطه پایانی (endpoint-pair shared secrets) برای DTLS/SCTP. این کار امکان برقراری ارتباط با پیاده‌سازی‌های معیوب قدیمی‌تر را فراهم می‌کند، اما سازگاری‌پذیری با پیاده‌سازی‌های درست را از بین می‌برد. باید همراه با -sctp به کار رود. این گزینه تنها زمانی در دسترس است که پشتیبانی از SCTP در OpenSSL فعال باشد. -use_srtp ارائه مدیریت کلید SRTP به همراه فهرستی از پروفایل‌ها که با دونقطه (:) از هم جدا شده‌اند. -no_dhe اگر این گزینه تنظیم شود، هیچ پارامتر DH بارگذاری نخواهد شد که در عمل مجموعه‌های رمزنگاری موقت DH (ephemeral DH) را غیرفعال می‌کند. -alpn val, -nextprotoneg val این فلگ‌ها به ترتیب افزونه Application-Layer Protocol Negotiation (ALPN) یا Next Protocol Negotiation (NPN) را فعال می‌کنند. ALPN استاندارد IETF بوده و جایگزین NPN است. فهرست val فهرستی جداشده با کاما از نام‌های پروتکل‌های پشتیبانی‌شده است. این فهرست باید ابتدا شامل مطلوب‌ترین پروتکل‌ها باشد. نام‌های پروتکل رشته‌های اسکی قابل چاپ هستند، برای نمونه "http/1.1" یا "spdy/3". در صورت استفاده از -tls1_3، فلگ -nextprotoneg نمی‌تواند مشخص شود. -ktls فعال‌سازی Kernel TLS برای ارسال و دریافت. این گزینه در OpenSSL 3.2.0 معرفی شد. از نسخه OpenSSL 3.2.0، قابلیت Kernel TLS به‌طور پیش‌فرض غیرفعال است. -sendfile اگر این گزینه تنظیم شود و KTLS فعال باشد، به جای BIO_write() از SSL_sendfile() برای ارسال پاسخ HTTP درخواستی کلاینت استفاده خواهد شد. این گزینه فقط زمانی معتبر است که -ktls همراه با -WWW یا -HTTP مشخص شده باشد. -zerocopy_sendfile اگر این گزینه تنظیم شود، SSL_sendfile() از حالت انتقال بدون رونوشت (zerocopy TX mode) استفاده می‌کند که هنگام استفاده با تخلیه بار سخت‌افزاری (hardware offload) KTLS کارایی را ارتقا می‌دهد. توجه داشته باشید که اگر فایل در حال ارسال تغییر کند، ممکن است رکوردهای TLS نامعتبر منتقل شوند. این گزینه به -sendfile وابسته است؛ هنگامی که به تنهایی استفاده شود، -sendfile به‌طور ضمنی در نظر گرفته شده و یک هشدار نمایش داده می‌شود. توجه داشته باشید که sendfile در KTLS روی FreeBSD همواره در حالت zerocopy اجرا می‌شود. -keylogfile outfile اسرار TLS را به فایل لاگ کلید (keylog) مشخص‌شده پیوست می‌کند تا برنامه‌های خارجی (مانند Wireshark) بتوانند اتصالات TLS را رمزگشایی نمایند. -max_early_data int تغییر حداکثر بایت‌های پیش‌فرض داده‌های اولیه (early data) که برای نشست‌های جدید و هر داده اولیه ورودی (هنگام استفاده همراه با فلگ -early_data) مشخص می‌شوند. مقدار پیش‌فرض تقریباً 16k است. این آرگومان باید یک عدد صحیح بزرگ‌تر یا مساوی با ۰ باشد. -recv_max_early_data int تعیین حد سخت‌گیرانه روی حداکثر تعداد بایت‌های داده‌های اولیه که پذیرفته خواهند شد. -early_data پذیرش داده‌های اولیه در صورت امکان. نمی‌تواند همراه با -www، -WWW، -HTTP یا -rev استفاده شود. -stateless کوکی‌های TLSv1.3 را الزامی می‌کند. -anti_replay, -no_anti_replay به ترتیب محافظت در برابر بازپخش (Replay) را روشن یا خاموش می‌کند. محافظت در برابر بازپخش (Replay) به‌طور پیش‌فرض روشن است مگر اینکه توسط یک فایل پیکربندی بازنویسی شود. هنگامی که روشن است، OpenSSL به‌طور خودکار تشخیص می‌دهد که آیا یک بلیت نشست (session ticket) بیش از یک بار استفاده شده است، TLSv1.3 مذاکره شده و داده‌های اولیه روی سرور فعال است یا خیر. در صورتی که بلیت نشست برای بار دوم یا دفعات بعدی استفاده شود، یک دست‌تکانی (هندشیک) کامل تحمیل می‌شود. هر داده اولیه‌ای که ارسال شده باشد رد خواهد شد. توجه داشته باشید که سرور یک حافظه نهان (کَش) داخلی از بلیت‌های نشست را مدیریت می‌کند. اگر کلاینت اتصال را بدون ارسال هشدار close_notify ببندد، بلیت نشست متناظر حذف شده و یک دست‌تکانی (هندشیک) کامل تحمیل می‌گردد. -tfo فعال‌سازی پذیرش اتصالات TCP Fast Open (RFC7413). -cert_comp گواهی‌هایی (RFC8879) را که در طول دست‌تکانی (هندشیک) ارسال خواهند شد، از قبل فشرده می‌کند. -nameopt option مشخص می‌کند که نام‌های موضوع (subject) یا صادرکننده (issuer) چگونه نمایش داده شوند. برای جزئیات بیشتر به openssl-namedisplay-options(1) مراجعه کنید. -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2, -no_tls1_3, -ssl3, -tls1, -tls1_1, -tls1_2, -tls1_3 به بخش «گزینه‌های نسخه TLS» (TLS Version Options) در openssl(1) مراجعه کنید. -dtls, -dtls1, -dtls1_2 این گزینه‌ها استفاده از DTLS به جای TLS را مشخص می‌کنند. به بخش «گزینه‌های نسخه TLS» (TLS Version Options) در openssl(1) مراجعه کنید. -bugs, -comp, -no_comp, -no_ticket, -serverpref, -client_renegotiation, -legacy_renegotiation, -no_renegotiation, -no_resumption_on_reneg, -legacy_server_connect, -no_legacy_server_connect, -no_etm -allow_no_dhe_kex, -prefer_no_dhe_kex, -prioritize_chacha, -strict, -sigalgs algs, -client_sigalgs algs, -groups groups, -curves curves, -named_curve curve, -cipher ciphers, -ciphersuites 1.3ciphers, -min_protocol minprot, -max_protocol maxprot, -record_padding padding, -debug_broken_protocol, -no_middlebox برای جزئیات بیشتر به بخش «SUPPORTED COMMAND LINE COMMANDS» در SSL_CONF_cmd(3) مراجعه کنید. -xkey infile, -xcert file, -xchain file, -xchain_build file, -xcertform DER|PEM, -xkeyform DER|PEM تنظیم گزینه‌های گسترده اعتبارسنجی گواهی. برای جزئیات بیشتر به بخش «گزینه‌های اعتبارسنجی گسترده» (Extended Verification Options) در openssl-verification-options(1) مراجعه کنید. -CAfile file, -no-CAfile, -CApath dir, -no-CApath, -CAstore uri, -no-CAstore برای جزئیات بیشتر به بخش «گزینه‌های گواهی مورد اعتماد» (Trusted Certificate Options) در openssl-verification-options(1) مراجعه کنید. -rand files, -writerand file برای جزئیات بیشتر به بخش «گزینه‌های وضعیت تصادفی» (Random State Options) در openssl(1) مراجعه کنید. -engine id به بخش «گزینه‌های موتور» (Engine Options) در openssl(1) مراجعه کنید. این گزینه منسوخ شده است. -provider name -provider-path path -provparam [name:]key=value -propquery propq به بخش «گزینه‌های ارائه‌دهنده» (Provider Options) در openssl(1)، provider(7) و property(7) مراجعه کنید. -allow_proxy_certs, -attime, -no_check_time, -check_ss_sig, -crl_check, -crl_check_all, -explicit_policy, -extended_crl, -ignore_critical, -inhibit_any, -inhibit_map, -no_alt_chains, -partial_chain, -policy, -policy_check, -policy_print, -purpose, -suiteB_128, -suiteB_128_only, -suiteB_192, -trusted_first, -use_deltas, -auth_level, -verify_depth, -verify_email, -verify_hostname, -verify_ip, -verify_name, -x509_strict -issuer_checks تنظیم گزینه‌های گوناگون اعتبارسنجی زنجیره گواهی. برای جزئیات بیشتر به بخش «گزینه‌های اعتبارسنجی» (Verification Options) در openssl-verification-options(1) مراجعه کنید. اگر سرور درخواست گواهی کلاینت کند، خطاهای اعتبارسنجی جهت اشکال‌زدایی نمایش داده می‌شوند، اما دستور به کار خود ادامه خواهد داد مگر اینکه از گزینه -verify_return_error استفاده شده باشد. -enable_server_rpk فعال‌سازی پشتیبانی از ارسال کلید عمومی خام (RPK) (RFC7250) به کلاینت. در صورت درخواست کلاینت و به شرط پیکربندی یک جفت کلید و گواهی عمومی مناسب، یک کلید عمومی خام (RPK) توسط سرور ارسال خواهد شد. کلاینت‌هایی که از کلید عمومی خام (RPK) پشتیبانی نمی‌کنند یا ترجیح می‌دهند از گواهی‌های X.509 استفاده نمایند، همچنان می‌توانند طبق معمول دریافت گواهی‌های X.509 را انتخاب کنند. کلیدهای عمومی خام (RPK) از گواهی/کلید خصوصی پیکربندی‌شده استخراج می‌شوند. -enable_client_rpk فعال‌سازی پشتیبانی از دریافت کلید عمومی خام (RPK) (RFC7250) از کلاینت. استفاده از گواهی‌های X.509 توسط کلاینت اختیاری می‌شود، و کلاینت‌هایی که از کلید عمومی خام (RPK) پشتیبانی می‌کنند می‌توانند استفاده از آن‌ها را انتخاب نمایند. کلاینت‌هایی که از کلید عمومی خام (RPK) پشتیبانی نمی‌کنند یا ترجیح می‌دهند از گواهی‌های X.509 استفاده کنند، همچنان می‌توانند طبق معمول ارسال گواهی‌های X.509 را انتخاب نمایند. کلیدهای عمومی خام (RPK) از گواهی/کلید خصوصی پیکربندی‌شده استخراج می‌شوند. دستورات متصل (CONNECTED COMMANDS) اگر درخواست اتصالی با یک کلاینت SSL برقرار شود و از هیچ‌یک از گزینه‌های -www یا -WWW استفاده نشده باشد، در این صورت معمولاً هر داده‌ای که از کلاینت دریافت شود نمایش داده شده و فشردن هر کلیدی به کلاینت ارسال خواهد شد. دستورات مشخصی نیز شناسایی می‌شوند که عملیات ویژه‌ای را انجام می‌دهند. این دستورات یک حرف هستند که باید در ابتدای خط قرار گیرند. این دستورات در زیر فهرست شده‌اند: q پایان دادن به اتصال فعلی SSL، اما همچنان پذیرش اتصالات جدید. Q پایان دادن به اتصال فعلی SSL و خروج. r مذاکره مجدد نشست SSL (فقط در TLSv1.2 و پایین‌تر). R مذاکره مجدد نشست SSL و درخواست گواهی کلاینت (فقط در TLSv1.2 و پایین‌تر). P ارسال مقداری متن ساده روی اتصال TCP زیرین؛ این کار باید باعث قطع اتصال کلاینت به دلیل نقض پروتکل شود. S چاپ برخی اطلاعات مربوط به وضعیت کش نشست. k ارسال یک پیام به‌روزرسانی کلید به کلاینت (فقط در TLSv1.3). K ارسال یک پیام به‌روزرسانی کلید به کلاینت و درخواست متقابل آن از کلاینت (فقط در TLSv1.3). c ارسال یک درخواست گواهی به کلاینت (فقط در TLSv1.3). نکات (NOTES) این دستور می‌تواند برای اشکال‌زدایی کلاینت‌های SSL استفاده شود. برای پذیرش اتصالات از یک مرورگر وب، می‌توان به عنوان مثال از دستور: openssl s_server -accept 443 -www استفاده کرد. اگرچه مشخص کردن یک فهرست خالی از CAها هنگام درخواست گواهی کلاینت، از نظر فنی نقض پروتکل است، اما برخی کلاینت‌های SSL این موضوع را به این معنی تفسیر می‌کنند که هر مرجع صدور گواهی (CA) قابل قبول است. این ویژگی برای مقاصد اشکال‌زدایی مفید است. پارامترهای نشست را می‌توان با استفاده از دستور openssl-sess_id(1) چاپ کرد. اشکالات (BUGS) به دلیل اینکه این برنامه گزینه‌های بسیار زیادی دارد و همچنین به دلیل قدیمی بودن برخی از تکنیک‌های به‌کاررفته در آن، سورس کد C این دستور برای خواندن نسبتاً دشوار است و الگویی برای چگونگی انجام درست کارها محسوب نمی‌شود. یک برنامه سرور SSL معمولی بسیار ساده‌تر خواهد بود. خروجی رمزهای مشترک نادرست است: این خروجی صرفاً فهرستی از رمزهایی را نشان می‌دهد که OpenSSL می‌شناسد و کلاینت از آن‌ها پشتیبانی می‌کند. باید راهکاری برای این دستور وجود داشته باشد تا بتواند جزئیات هر مجموعه رمزیِ ناشناخته‌ای را که کلاینت اعلام می‌کند پشتیبانی می‌کند، چاپ نماید. همچنین ببینید (SEE ALSO) openssl(1), openssl-sess_id(1), openssl-s_client(1), openssl-ciphers(1), SSL_CONF_cmd(3), SSL_CTX_set_max_send_fragment(3), SSL_CTX_set_split_send_fragment(3), SSL_CTX_set_max_pipelines(3), ossl_store-file(7) تاریخچه (HISTORY) گزینه -no_alt_chains در OpenSSL 1.1.0 اضافه شد. گزینه‌های -allow-no-dhe-kex و -prioritize_chacha در OpenSSL 1.1.1 اضافه شدند. گزینه‌های -srpvfile، -srpuserseed و -engine در OpenSSL 3.0 منسوخ شدند. گزینه‌های -enable_client_rpk، -enable_server_rpk، -no_rx_cert_comp، -no_tx_cert_comp و -tfo در OpenSSL 3.2 اضافه شدند. گزینه -status_all در OpenSSL 3.6 اضافه شد. حق نشر (COPYRIGHT) حق نشر 2000-2026 متعلق به نویسندگان پروژه OpenSSL است. تمامی حقوق محفوظ است. تحت مجوز آپاچی نسخه 2.0 («مجوز») منتشر شده است. شما مجاز به استفاده از این فایل نیستید مگر با رعایت مفاد مجوز. می‌توانید نسخه‌ای از مجوز را در فایل LICENSE در توزیع سورس یا در نشانی دریافت کنید. 3.6.4 2026-08-25 OPENSSL-S_SERVER(1ssl)