بهطور پیشفرض در Apigee Edge for Private Cloud نسخه 4.54.00، Router (Nginx)
و Message Processor (Java 21) TLSv1.2 و
TLSv1.3 را فعال میکنند. بسته به نیازهای کسبوکار و رویههای امنیتیتان،
ممکن است بخواهید پروتکلهای مجاز را محدود کنید یا پروتکلهای قدیمیتر را
دوباره فعال کنید. این سند نحوه پیکربندی پروتکلهای «امنیت لایه انتقال»
را برای ترافیک شمالی و جنوبی در «مسیریاب» و «پردازشگر پیام»
شرح میدهد.
برای «مسیریاب»، میتوانید پروتکل را برای میزبانهای مجازی جداگانه نیز تنظیم کنید. برای اطلاعات بیشتر، پیکربندی دسترسی «امنیت لایه انتقال» به میانای برنامهسازی کاربردی برای «ابر خصوصی» را ببینید.
برای «پردازشگر پیام»، میتوانید پروتکل را برای TargetEndpoint جداگانه تنظیم کنید. برای اطلاعات بیشتر، پیکربندی TLS از Edge تا زیرینه (Cloud و Cloud خصوصی) را ببینید.
پروتکل TLS را در «مسیریاب» تنظیم کنید
ویژگیهای زیر به شما کمک میکند پروتکلهای «امنیت لایه انتقال» موردنظر را در «مسیریاب» برای ارتباطات شمالی تنظیم کنید.
برای تنظیم پروتکل TLS در «رهیاب»، ویژگیها را در فایل router.properties
تنظیم کنید:
- فایل
router.propertiesرا در ویرایشگر باز کنید. اگر فایل وجود ندارد، آن را ایجاد کنید:vi /opt/apigee/customer/application/router.properties
- ویژگیها را بهدلخواه تنظیم کنید:
# Possible values are space-delimited list of: TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1.2
- تغییراتتان را ذخیره کنید.
- مطمئن شوید فایل ویژگیها متعلق به کاربر
apigeeاست:chown apigee:apigee /opt/apigee/customer/application/router.properties
- بازراهاندازی رهیاب:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- با بررسی فایل Nginx، تأیید کنید که پروتکل بهدرستی بهروز شده است
/opt/nginx/conf.d/0-default.conf:cat /opt/nginx/conf.d/0-default.conf
مطمئن شوید مقدار
ssl_protocolsTLSv1.2باشد. - اگر از TLS دوطرفه با میزبان مجازی استفاده میکنید، باید پروتکل TLS را نیز در میزبان مجازی تنظیم کنید، همانطور که در پیکربندی دسترسی TLS به API برای Private Cloud شرح داده شده است.
تنظیم پروتکل TLS در پردازشگر پیام
ویژگیهای زیر به شما کمک میکند پروتکلهای TLS موردنظر را در «پردازشگر پیام» برای ارتباطات جنوبی تنظیم کنید. این بخش همچنین نحوه کار با پروتکلها و رمزهای TLS غیرفعال را توضیح میدهد.
برای تنظیم پروتکل TLS در «پردازشگر پیام»، ویژگیها را در فایل
message-processor.properties تنظیم کنید:
- فایل
message-processor.propertiesرا در ویرایشگر باز کنید. اگر فایل وجود ندارد، آن را ایجاد کنید:vi /opt/apigee/customer/application/message-processor.properties
- خصوصیات را بااستفاده از نحو زیر پیکربندی کنید:
# Possible values are a comma-delimited list of TLSv1, TLSv1.1, TLSv1.2, and TLSv1.3 conf/system.properties+https.protocols=[TLSv1][,TLSv1.1][,TLSv1.2][,TLSv1.3] # Possible values are a comma-delimited list of SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 # SSLv3 is required conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3[,TLSv1][,TLSv1.1][,TLSv1.2][,TLSv1.3] # Specify the ciphers that the Message Processor supports. (You must separate ciphers with a comma.): conf_message-processor-communication_local.http.ssl.ciphers=cipher[,...]
برای مثال:
conf/system.properties+https.protocols=TLSv1.2 conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1 conf_message-processor-communication_local.http.ssl.ciphers=TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
برای فهرست کامل ویژگیهای مرتبط، به پیکربندی TLS بین مسیریاب و پردازشگر پیام مراجعه کنید.
- تغییراتتان را ذخیره کنید.
- مطمئن شوید فایل خصوصیات متعلق به کاربر
apigeeاست:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- «پردازشگر پیام» را بازراهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- اگر از «امنیت لایه انتقال» دوطرفه با پسبک استفاده میکنید، پروتکل «امنیت لایه انتقال» را در میزبان مجازی همانطور که در پیکربندی «امنیت لایه انتقال» از Edge به پسبک (Cloud و Private Cloud) شرح داده شده است تنظیم کنید.
کار با رمزهای قدیمیتر و پروتکلهای TLS: اگر میخواهید با رمزها یا پروتکلهای قدیمیتر کار کنید، به بخشهای زیر مراجعه کنید.
کار کردن با «امنیت لایه انتقال» قدیمیتر
در Java 21، پروتکلهای قدیمی «امنیت لایه انتقال» (TLSv1،
TLSv1.1، و SSLv3) و کلیدهای ضعیف Diffie-Hellman
(DH keySize < 1024) بهطور پیشفرض در
jdk.tls.disabledAlgorithms غیرفعال هستند. برای فعال کردن آنها، از یکی از
گزینههای زیر استفاده کنید:
- گزینه الف: مدرنسازی پروتکلهای زیرینه: سرورهای زیرینه را بهروز کنید تا از
«امنیت لایه انتقال» نسخه ۱.۲ یا نسخه ۱.۳ پشتیبانی کنند و مطمئن شوید اندازههای پارامتر Diffie-Hellman
۲۰۴۸ بیت یا بیشتر (
>= 2048بیت) باشد. - گزینه ب: فعال کردن مجدد پروتکلهای قدیمی بااستفاده از CwC: با برداشتن
TLSv1, TLSv1.1ازconf_jvmsecurity_jdk.tls.disabledAlgorithmsدر/opt/apigee/customer/application/message-processor.propertiesبااستفاده از کد با پیکربندی (CwC)، سازگاری با باطنهای قدیمی TLS 1.0 یا TLS 1.1 را حفظ کنید:# Re-enable TLS 1.0 and TLS 1.1 for legacy backend connectivity conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3, DTLSv1.0, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, ECDH, TLS_RSA_*, rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature, include jdk.disabled.namedCurves
کار با رمزهای RSA ایستا
Apigee Edge برای Private Cloud نسخه ۴.۵۴.۰۰ روی Java 21 اجرا میشود،
که در آن مجموعههای رمز RSA ایستا (TLS_RSA_*) که فاقد تبادل کلید
دیفی-هلمن موقتی (ECDHE یا DHE) هستند بهطور پیشفرض در
jdk.tls.disabledAlgorithms غیرفعال شدهاند (برای مثال،
TLS_RSA_WITH_AES_128_CBC_SHA یا
TLS_RSA_WITH_AES_256_CBC_SHA). برای پشتیبانی از پسنماهایی که به
مجموعههای رمز RSA ایستا نیاز دارند، از گزینه زیر استفاده کنید:
- فعال کردن مجدد رمزهای RSA ایستا بااستفاده از CwC: با برداشتن
TLS_RSA_*ازconf_jvmsecurity_jdk.tls.disabledAlgorithmsدر/opt/apigee/customer/application/message-processor.propertiesبااستفاده از کد با پیکربندی (CwC)، سازگاری با پساندهای قدیمی را حفظ کنید:# Re-enable Static RSA ciphers for backward compatibility with legacy Java 8 backends conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, DTLSv1.0, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, ECDH, rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature, include jdk.disabled.namedCurves
پساز اصلاح ویژگیها، «پردازشگر پیام» را بااستفاده از
apigee-service بازراهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
فعال کردن «امنیت لایه انتقال» نسخه ۱.۳ برای میزبانان
این بخش توضیح میدهد چگونه TLS 1.3 را برای میزبانهای مجازی خاص فعال کنید. برای فعال کردن TLS 1.3، مراحل زیر را در گرههای «سرور مدیریت» انجام دهید:
- در هر گره «سرور مدیریت»، فایل
/opt/apigee/customer/application/management-server.propertiesرا ویرایش کنید و خط زیر را اضافه کنید (اگر فایل وجود ندارد، آن را ایجاد کنید):conf_virtualhost_virtual.host.allowed.protocol.list=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
برای این فایل، پروتکلها با کاما از هم جدا میشوند و حروفحساس هستند.
- فایل را ذخیره کنید.
- مطمئن شوید فایل متعلق به کاربر
apigeeاست:chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- بازراهاندازی سرور مدیریت:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- مراحل قبلی را در همه گرههای «سرور مدیریت» یکییکی تکرار کنید.
- میزبان مجازی جدیدی با ویژگی زیر ایجاد کنید (یا میزبان مجازی موجود را بهروز کنید). توجه داشته باشید که پروتکلها با فاصله از هم جدا میشوند و حروفحساس هستند:
"properties": { "property": [ { "name": "ssl_protocols", "value": "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3" } ] }مثال زیر یک vhost نمونه با این ویژگی را نشان میدهد:
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "ssl_protocols", "value": "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
درحال آزمایش TLS 1.3
برای آزمایش «امنیت لایه انتقال» نسخه ۱.۳، فرمان زیر را وارد کنید:
curl -v --tlsv1.3 "https://api.myCompany,com/testproxy"
توجه داشته باشید که فقط در کارخواهانی که از این پروتکل پشتیبانی میکنند میتوانید «امنیت لایه انتقال» نسخه ۱.۳ را آزمایش کنید. اگر TLS 1.3 فعال نباشد، پیام خطایی مشابه پیام زیر میبینید:
sslv3 alert handshake failure