{"id":34431,"date":"2025-11-16T15:31:11","date_gmt":"2025-11-16T12:31:11","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/"},"modified":"2025-11-16T15:31:11","modified_gmt":"2025-11-16T12:31:11","slug":"rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/","title":{"rendered":"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?"},"content":{"rendered":"<p><body><\/p>\n<p>Modern da\u011f\u0131t\u0131k sistemlerde, verilerin g\u00fcvenli bir \u015fekilde iletilmesi hayati \u00f6nem ta\u015f\u0131r. RabbitMQ ve Celery ikilisi, asenkron g\u00f6rev y\u00f6netimi i\u00e7in g\u00fc\u00e7l\u00fc bir kombinasyon sunarken, bu ileti\u015fimin \u015fifrelenmesi ve kimlik do\u011frulamas\u0131 s\u0131kl\u0131kla g\u00f6z ard\u0131 edilebilir. Bu makalede, RabbitMQ ve Celery aras\u0131nda TLS\/SSL kullanarak nas\u0131l g\u00fcvenli bir ba\u011flant\u0131 kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz, b\u00f6ylece verilerinizin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flayabileceksiniz.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn birbirine ba\u011fl\u0131 d\u00fcnyas\u0131nda, uygulamalar aras\u0131 ileti\u015fim s\u00fcrekli artmaktad\u0131r. Mikroservis mimarileri ve da\u011f\u0131t\u0131k sistemler pop\u00fclerlik kazan\u0131rken, bu sistemlerin omurgas\u0131n\u0131 olu\u015fturan mesaj broker&#8217;lar\u0131 ve g\u00f6rev kuyruklar\u0131 kritik bir rol oynar. RabbitMQ, bu alanda en yayg\u0131n kullan\u0131lan mesaj broker&#8217;lar\u0131ndan biridir ve Celery ile birle\u015fti\u011finde, asenkron g\u00f6revlerin y\u00f6netimi i\u00e7in olduk\u00e7a g\u00fc\u00e7l\u00fc bir platform sunar. Ancak, bu iki bile\u015fen aras\u0131ndaki ileti\u015fim varsay\u0131lan olarak \u015fifresizdir. Bu durum, hassas verilerin, API anahtarlar\u0131n\u0131n veya ki\u015fisel bilgilerin a\u011f \u00fczerinde d\u00fcz metin olarak iletilmesi riskini ta\u015f\u0131r. Bir sald\u0131rgan, bu ileti\u015fimi kolayca dinleyebilir (eavesdropping) veya mesajlar\u0131 manip\u00fcle edebilir (man-in-the-middle sald\u0131r\u0131s\u0131), bu da ciddi g\u00fcvenlik ihlallerine yol a\u00e7abilir.<\/p>\n<p>\u00d6rne\u011fin, bir e-ticaret uygulamas\u0131nda kullan\u0131c\u0131 kay\u0131tlar\u0131ndan sonra g\u00f6nderilen ho\u015f geldiniz e-postalar\u0131 veya sipari\u015f onaylar\u0131 Celery g\u00f6revleri arac\u0131l\u0131\u011f\u0131yla i\u015fleniyor olabilir. E\u011fer bu g\u00f6rev mesajlar\u0131 \u015fifresiz iletilirse, bir sald\u0131rgan kullan\u0131c\u0131lar\u0131n e-posta adreslerini ve sipari\u015f detaylar\u0131n\u0131 ele ge\u00e7irebilir. Ayr\u0131ca, finansal i\u015flemlerin veya hassas t\u0131bbi bilgilerin i\u015flendi\u011fi sistemlerde \u015fifresiz ileti\u015fim, yasal uyumluluk sorunlar\u0131na (\u00f6rne\u011fin GDPR, HIPAA) ve itibar kayb\u0131na neden olabilir. Bu nedenle, RabbitMQ ve Celery aras\u0131ndaki ileti\u015fimin TLS\/SSL ile g\u00fcvenli hale getirilmesi, sadece iyi bir uygulama de\u011fil, ayn\u0131 zamanda \u00e7o\u011fu senaryoda zorunlu bir gerekliliktir. G\u00fcvenli ileti\u015fim kanallar\u0131 olu\u015fturarak, verilerinizi potansiyel tehditlere kar\u015f\u0131 korumu\u015f olursunuz.<\/p>\n<h3>Veri G\u00fcvenli\u011finin Temel Prensipleri Nelerdir?<\/h3>\n<p>Veri g\u00fcvenli\u011finin temelinde yatan \u00fc\u00e7 ana prensip, CIA \u00fc\u00e7l\u00fcs\u00fc olarak bilinir: Gizlilik (Confidentiality), B\u00fct\u00fcnl\u00fck (Integrity) ve Eri\u015filebilirlik (Availability). Bu prensipler, herhangi bir sistemin g\u00fcvenli\u011fini de\u011ferlendirirken ve tasarlarken yol g\u00f6stericidir:<\/p>\n<ul>\n<li><strong>Gizlilik (Confidentiality):<\/strong> Bu prensip, hassas bilgilere yetkisiz eri\u015fimi engellemeyi ama\u00e7lar. Sadece yetkili kullan\u0131c\u0131lar\u0131n veya sistemlerin belirli verilere eri\u015febilmesini sa\u011flar. RabbitMQ ve Celery ba\u011flam\u0131nda, TLS\/SSL ile ileti\u015fim \u015fifrelemek, mesajlar\u0131n a\u011f \u00fczerinde okunamaz hale gelmesini sa\u011flayarak gizlili\u011fi temin eder. B\u00f6ylece, mesaj kuyru\u011funda yer alan finansal veriler, ki\u015fisel bilgiler veya kritik komutlar, yetkisiz ki\u015filer taraf\u0131ndan ele ge\u00e7irilse dahi anlams\u0131z kal\u0131r.<\/li>\n<li><strong>B\u00fct\u00fcnl\u00fck (Integrity):<\/strong> Verinin do\u011fru ve tam oldu\u011funu, yetkisiz veya istenmeyen de\u011fi\u015fikliklere u\u011framad\u0131\u011f\u0131n\u0131 garanti eder. TLS\/SSL, \u015fifreleme ile birlikte mesajlar\u0131n b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc kontrol eden mekanizmalar (\u00f6rne\u011fin MAC &#8211; Message Authentication Code) i\u00e7erir. Bu sayede, bir sald\u0131rgan\u0131n iletilen mesajlar\u0131 de\u011fi\u015ftirmeye \u00e7al\u0131\u015fmas\u0131 durumunda, al\u0131c\u0131 taraf bu de\u011fi\u015fikli\u011fi tespit edebilir ve sahte mesaj\u0131 reddedebilir. Bu, \u00f6zellikle Celery g\u00f6revlerinde kritik bir \u00f6neme sahiptir; zira yanl\u0131\u015f bir komut veya veri de\u011fi\u015fikli\u011fi, t\u00fcm sistemin yanl\u0131\u015f \u00e7al\u0131\u015fmas\u0131na yol a\u00e7abilir.<\/li>\n<li><strong>Eri\u015filebilirlik (Availability):<\/strong> Yetkili kullan\u0131c\u0131lar\u0131n ve sistemlerin ihtiya\u00e7 duyduklar\u0131 zaman verilere ve kaynaklara eri\u015febilmesini sa\u011flar. TLS\/SSL&#8217;in kendisi do\u011frudan eri\u015filebilirli\u011fi sa\u011flamaz, ancak g\u00fcvenli bir ileti\u015fim altyap\u0131s\u0131 kurmak, sistemin istikrarl\u0131 ve g\u00fcvenilir bir \u015fekilde \u00e7al\u0131\u015fmas\u0131na yard\u0131mc\u0131 olur. G\u00fcvenlik ihlalleri veya veri manip\u00fclasyonu nedeniyle sistemin \u00e7\u00f6kmesi veya \u00e7al\u0131\u015famaz hale gelmesi, eri\u015filebilirli\u011fi do\u011frudan etkiler. Do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f TLS\/SSL, sistemin g\u00fcvenilirli\u011fini art\u0131rarak dolayl\u0131 yoldan eri\u015filebilirli\u011fe katk\u0131da bulunur.<\/li>\n<\/ul>\n<p>Bu prensiplere uygun bir g\u00fcvenlik stratejisi uygulamak, RabbitMQ ve Celery gibi sistemlerin sadece verimli de\u011fil, ayn\u0131 zamanda g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 garanti alt\u0131na al\u0131r. \u00d6zellikle da\u011f\u0131t\u0131k ve bulut tabanl\u0131 ortamlarda, bu prensiplere riayet etmek, olas\u0131 siber sald\u0131r\u0131lara kar\u015f\u0131 sa\u011flam bir savunma mekanizmas\u0131 olu\u015fturman\u0131n anahtar\u0131d\u0131r.<\/p>\n<h2>RabbitMQ ve Celery Nedir, Neden Birlikte Kullan\u0131l\u0131r?<\/h2>\n<p>RabbitMQ ve Celery, modern web uygulamalar\u0131n\u0131n ve da\u011f\u0131t\u0131k sistemlerin temel ta\u015flar\u0131ndan ikisidir. Her ikisi de asenkron i\u015flemleri y\u00f6netmek ve uygulamalar\u0131n performans\u0131n\u0131 art\u0131rmak i\u00e7in kullan\u0131l\u0131r, ancak farkl\u0131 rollere sahiptirler. Bu b\u00f6l\u00fcmde, bu teknolojilerin ne oldu\u011funu ve neden s\u0131kl\u0131kla bir araya geldiklerini daha yak\u0131ndan inceleyece\u011fiz, b\u00f6ylece g\u00fcvenlik ba\u011flam\u0131nda neden bu kadar kritik olduklar\u0131n\u0131 daha iyi anlayabiliriz.<\/p>\n<p><strong>RabbitMQ:<\/strong> Esas olarak bir mesaj kuyru\u011fu veya mesaj broker&#8217;\u0131d\u0131r. Uygulamalar aras\u0131nda mesajlar\u0131n g\u00fcvenli ve g\u00fcvenilir bir \u015fekilde iletilmesini sa\u011flar. Bir uygulama (\u00fcretici), bir mesaj\u0131 RabbitMQ&#8217;ya g\u00f6nderir ve ba\u015fka bir uygulama (t\u00fcketici) bu mesaj\u0131 RabbitMQ&#8217;dan al\u0131r. Bu ayr\u0131\u015ft\u0131rma (decoupling), uygulamalar\u0131n birbirlerinden ba\u011f\u0131ms\u0131z \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar, b\u00f6ylece bir uygulaman\u0131n di\u011ferini beklemeden g\u00f6revlerini s\u00fcrd\u00fcrmesine olanak tan\u0131r. RabbitMQ, AMQP (Advanced Message Queuing Protocol) protokol\u00fcn\u00fc kullan\u0131r ve \u00e7e\u015fitli programlama dilleri i\u00e7in istemci k\u00fct\u00fcphaneleri sunar. Mesajlar\u0131n kal\u0131c\u0131l\u0131\u011f\u0131, mesaj y\u00f6nlendirme esnekli\u011fi ve k\u00fcmeleme yetenekleri gibi \u00f6zellikleriyle b\u00fcy\u00fck \u00f6l\u00e7ekli sistemlerde tercih edilir.<\/p>\n<p><strong>Celery:<\/strong> Python tabanl\u0131, da\u011f\u0131t\u0131k bir g\u00f6rev kuyru\u011fu sistemidir. A\u011f\u0131r veya uzun s\u00fcren i\u015flemleri (\u00f6rne\u011fin, resim i\u015fleme, e-posta g\u00f6nderme, rapor olu\u015fturma) ana uygulama i\u015f par\u00e7ac\u0131\u011f\u0131ndan ay\u0131rarak arka planda asenkron olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r. Celery, bir broker&#8217;a (genellikle RabbitMQ veya Redis) dayan\u0131r. Uygulama, Celery arac\u0131l\u0131\u011f\u0131yla bir g\u00f6revi broker&#8217;a g\u00f6nderir ve Celery worker&#8217;lar\u0131 broker&#8217;dan bu g\u00f6revleri al\u0131p i\u015fler. Bu model, web uygulamalar\u0131n\u0131n kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc engellemeden veya zaman a\u015f\u0131m\u0131na u\u011fratmadan karma\u015f\u0131k i\u015flemleri yapmas\u0131na olanak tan\u0131r, b\u00f6ylece kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir.<\/p>\n<h3>Mesaj Kuyruklar\u0131 ve Asenkron G\u00f6rev Y\u00f6netimi<\/h3>\n<p>RabbitMQ ve Celery&#8217;nin birlikte kullan\u0131m\u0131, &#8220;mesaj kuyruklar\u0131 ve asenkron g\u00f6rev y\u00f6netimi&#8221; paradigmalar\u0131n\u0131n g\u00fc\u00e7l\u00fc bir \u00f6rne\u011fini olu\u015fturur. Bir web uygulamas\u0131 d\u00fc\u015f\u00fcn\u00fcn: bir kullan\u0131c\u0131 b\u00fcy\u00fck bir rapor olu\u015fturma iste\u011fi g\u00f6nderdi\u011finde, bu i\u015flem do\u011frudan web sunucusu \u00fczerinde yap\u0131l\u0131rsa, kullan\u0131c\u0131 uzun s\u00fcre beklemek zorunda kal\u0131r ve sunucu kaynaklar\u0131 bloke olur. Bu durum, di\u011fer kullan\u0131c\u0131lar\u0131n deneyimini de olumsuz etkiler. \u0130\u015fte bu noktada asenkron g\u00f6rev y\u00f6netimi devreye girer:<\/p>\n<ol>\n<li>Kullan\u0131c\u0131 rapor iste\u011fini g\u00f6nderir.<\/li>\n<li>Web uygulamas\u0131, rapor olu\u015fturma g\u00f6revini Celery&#8217;ye y\u00f6nlendirir.<\/li>\n<li>Celery, bu g\u00f6revi bir mesaj olarak RabbitMQ&#8217;ya g\u00f6nderir (broker).<\/li>\n<li>RabbitMQ, mesaj\u0131 kuyru\u011funda tutar.<\/li>\n<li>\u00d6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f bir Celery worker, RabbitMQ&#8217;dan bu g\u00f6revi al\u0131r.<\/li>\n<li>Worker, raporu arka planda olu\u015fturur.<\/li>\n<li>Rapor haz\u0131r oldu\u011funda, worker sonucu (iste\u011fe ba\u011fl\u0131 olarak) bir veritaban\u0131na kaydedebilir veya kullan\u0131c\u0131ya bir bildirim g\u00f6nderebilir.<\/li>\n<\/ol>\n<p>Bu model, uygulaman\u0131n \u00f6l\u00e7eklenebilirli\u011fini, yan\u0131t verme h\u0131z\u0131n\u0131 ve genel performans\u0131n\u0131 art\u0131r\u0131r. Ancak, bu mesajlar\u0131n ve g\u00f6rev tan\u0131mlar\u0131n\u0131n a\u011f \u00fczerinde \u015fifresiz iletilmesi durumunda, yukar\u0131da bahsedildi\u011fi gibi ciddi g\u00fcvenlik a\u00e7\u0131klar\u0131 olu\u015fur. \u00d6zellikle, g\u00f6rev mesajlar\u0131 sistem komutlar\u0131, kullan\u0131c\u0131 ID&#8217;leri veya di\u011fer hassas veriler i\u00e7erebildi\u011finden, bunlar\u0131n g\u00fcvenli\u011fi kritik hale gelir. Bu ba\u011flamda, TLS\/SSL kullan\u0131m\u0131, bu mesajlar\u0131n yaln\u0131zca yetkili taraflar aras\u0131nda g\u00fcvenli bir \u015fekilde aktar\u0131lmas\u0131n\u0131 sa\u011flayarak sistemin genel g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<h3>TLS\/SSL Temelleri: \u015eifreleme ve Kimlik Do\u011frulama Mekanizmalar\u0131<\/h3>\n<p>TLS (Transport Layer Security) ve selefi SSL (Secure Sockets Layer), internet \u00fczerinde g\u00fcvenli ileti\u015fimi sa\u011flamak i\u00e7in kullan\u0131lan kriptografik protokollerdir. Temelde, iki ana amaca hizmet ederler: \u015fifreleme ve kimlik do\u011frulama. Bu mekanizmalar sayesinde, g\u00f6nderilen verilerin gizlili\u011fi ve b\u00fct\u00fcnl\u00fc\u011f\u00fc sa\u011flan\u0131r ve ileti\u015fime kat\u0131lan taraflar\u0131n ger\u00e7ekten iddia ettikleri ki\u015filer oldu\u011fu do\u011frulan\u0131r.<\/p>\n<h4>TLS Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h4>\n<p>TLS, bir &#8220;el s\u0131k\u0131\u015fma&#8221; (handshake) s\u00fcreci ile ba\u015flar. Bu s\u00fcre\u00e7, istemci ve sunucu aras\u0131nda g\u00fcvenli bir oturum olu\u015fturmak i\u00e7in gerekli olan ad\u0131mlar\u0131 i\u00e7erir:<\/p>\n<ol>\n<li><strong>ClientHello:<\/strong> \u0130stemci, sunucuya TLS s\u00fcr\u00fcm\u00fc, destekledi\u011fi \u015fifreleme algoritmalar\u0131 ve rastgele bir say\u0131 ile bir &#8220;merhaba&#8221; mesaj\u0131 g\u00f6nderir.<\/li>\n<li><strong>ServerHello:<\/strong> Sunucu, istemcinin tekliflerinden en uygun olanlar\u0131n\u0131 se\u00e7erek kendi &#8220;merhaba&#8221; mesaj\u0131n\u0131 g\u00f6nderir. Bu mesaja sunucunun dijital sertifikas\u0131 ve kendi rastgele say\u0131s\u0131 da eklenir.<\/li>\n<li><strong>Sertifika Do\u011frulama:<\/strong> \u0130stemci, sunucunun sertifikas\u0131n\u0131 do\u011frular. Bu do\u011frulama, sertifikay\u0131 veren Sertifika Yetkilisinin (CA) g\u00fcvenilir olup olmad\u0131\u011f\u0131n\u0131, sertifikan\u0131n ge\u00e7erlilik s\u00fcresini ve alan ad\u0131n\u0131 kontrol etmeyi i\u00e7erir. E\u011fer sertifika ge\u00e7erliyse, istemci g\u00fcvenli ileti\u015fime devam eder.<\/li>\n<li><strong>Anahtar De\u011fi\u015fimi:<\/strong> \u0130stemci ve sunucu, oturum boyunca kullan\u0131lacak simetrik bir \u015fifreleme anahtar\u0131 \u00fczerinde anla\u015f\u0131r. Bu anahtar, genellikle RSA veya Diffie-Hellman gibi asimetrik \u015fifreleme algoritmalar\u0131 kullan\u0131larak g\u00fcvenli bir \u015fekilde de\u011fi\u015f toku\u015f edilir. Sunucunun genel anahtar\u0131, bu anahtar\u0131 \u015fifrelemek i\u00e7in kullan\u0131l\u0131r ve sadece sunucunun \u00f6zel anahtar\u0131 ile \u00e7\u00f6z\u00fclebilir.<\/li>\n<li><strong>\u015eifreli \u0130leti\u015fim:<\/strong> El s\u0131k\u0131\u015fma tamamland\u0131ktan sonra, hem istemci hem de sunucu, \u00fczerinde anla\u015ft\u0131klar\u0131 simetrik anahtar\u0131 kullanarak t\u00fcm ileti\u015fimi \u015fifrelemeye ve \u015fifreyi \u00e7\u00f6zmeye ba\u015flar. Bu, daha h\u0131zl\u0131d\u0131r ve asimetrik \u015fifrelemeye g\u00f6re daha az i\u015flem g\u00fcc\u00fc gerektirir.<\/li>\n<\/ol>\n<p>Bu s\u00fcre\u00e7, a\u011fdaki potansiyel dinleyicilerin mesajlar\u0131n i\u00e7eri\u011fini g\u00f6rmesini engeller ve ayr\u0131ca mesajlar\u0131n iletim s\u0131ras\u0131nda de\u011fi\u015ftirilmedi\u011fini garanti eder. Ayr\u0131ca, sunucunun kimli\u011fini do\u011frulayarak, istemcinin do\u011fru sunucuyla ileti\u015fim kurdu\u011fundan emin olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>Dijital Sertifikalar ve Sertifika Yetkilileri (CA)<\/h4>\n<p>TLS&#8217;nin temel bile\u015fenlerinden biri dijital sertifikalard\u0131r. Bir dijital sertifika, bir sunucunun veya istemcinin kimli\u011fini do\u011frulayan elektronik bir belgedir. Bir Sertifika Yetkilisi (CA) taraf\u0131ndan imzalan\u0131r. CA&#8217;lar, g\u00fcvenilir \u00fc\u00e7\u00fcnc\u00fc taraflard\u0131r ve web taray\u0131c\u0131lar\u0131 ile i\u015fletim sistemleri taraf\u0131ndan g\u00fcvenirler. Sertifika i\u00e7eri\u011fi genellikle \u015funlar\u0131 bar\u0131nd\u0131r\u0131r:<\/p>\n<ul>\n<li>Sertifika sahibinin kamu anahtar\u0131<\/li>\n<li>Sertifika sahibinin ad\u0131 (\u00f6rne\u011fin, alan ad\u0131)<\/li>\n<li>Sertifikay\u0131 veren CA&#8217;n\u0131n ad\u0131<\/li>\n<li>Ge\u00e7erlilik s\u00fcresi<\/li>\n<li>CA&#8217;n\u0131n dijital imzas\u0131<\/li>\n<\/ul>\n<p>RabbitMQ ve Celery ba\u011flam\u0131nda, TLS\/SSL kullanmak i\u00e7in hem RabbitMQ sunucusunun hem de Celery istemcilerinin g\u00fcvenilir sertifikalara ihtiyac\u0131 olacakt\u0131r. Bu sertifikalar genellikle kendi kendini imzalam\u0131\u015f (self-signed) olabilir veya \u00f6zel bir CA taraf\u0131ndan imzalanabilir. Kendi kendini imzalam\u0131\u015f sertifikalar test ortamlar\u0131 i\u00e7in uygun olsa da, \u00fcretim ortamlar\u0131nda genellikle \u00f6zel bir CA taraf\u0131ndan imzalanm\u0131\u015f sertifikalar veya tan\u0131nm\u0131\u015f bir ticari CA&#8217;dan al\u0131nm\u0131\u015f sertifikalar tercih edilir. Bu sayede, RabbitMQ ve Celery aras\u0131ndaki ileti\u015fimin sadece \u015fifreli de\u011fil, ayn\u0131 zamanda kar\u015f\u0131l\u0131kl\u0131 olarak kimlik do\u011frulamal\u0131 ve g\u00fcvenilir olmas\u0131 sa\u011flanm\u0131\u015f olur.<\/p>\n<h2>RabbitMQ i\u00e7in TLS\/SSL Sertifikalar\u0131 Nas\u0131l Olu\u015fturulur ve Yap\u0131land\u0131r\u0131l\u0131r?<\/h2>\n<p>RabbitMQ&#8217;yu TLS\/SSL ile g\u00fcvenli hale getirmenin ilk ad\u0131m\u0131, gerekli dijital sertifikalar\u0131 olu\u015fturmakt\u0131r. Bu s\u00fcre\u00e7, genellikle bir Sertifika Yetkilisi (CA) olu\u015fturmay\u0131, RabbitMQ sunucusu i\u00e7in bir sertifika imzalamay\u0131 ve son olarak RabbitMQ&#8217;yu bu sertifikalar\u0131 kullanacak \u015fekilde yap\u0131land\u0131rmay\u0131 i\u00e7erir. \u00dcretim ortamlar\u0131nda ticari bir CA&#8217;dan sertifika alman\u0131z \u00f6nerilse de, bu rehberde kendi CA&#8217;m\u0131z\u0131 olu\u015fturarak s\u00fcreci u\u00e7tan uca a\u00e7\u0131klayaca\u011f\u0131z. Bu y\u00f6ntem, test ve geli\u015ftirme ortamlar\u0131 i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r ve temel prensipleri anlaman\u0131za yard\u0131mc\u0131 olur. T\u00fcm ad\u0131mlar i\u00e7in OpenSSL kullanaca\u011f\u0131z.<\/p>\n<h3>Kendi Sertifika Yetkilimizi (CA) Olu\u015fturma Ad\u0131mlar\u0131<\/h3>\n<p>\u0130lk olarak, t\u00fcm di\u011fer sertifikalar\u0131 imzalayacak olan kendi k\u00f6k CA sertifikam\u0131z\u0131 olu\u015fturmal\u0131y\u0131z. Bu CA, g\u00fcven zincirinin ba\u015flang\u0131c\u0131 olacakt\u0131r.<\/p>\n<ol>\n<li><strong>CA \u00d6zel Anahtar\u0131n\u0131 Olu\u015fturma:<\/strong>\n<p>Bu komut, 2048 bit RSA anahtar\u0131 kullanarak bir \u00f6zel anahtar dosyas\u0131 (<code>ca_key.pem<\/code>) olu\u015fturur. Bu anahtar, CA&#8217;n\u0131z\u0131n kimli\u011fini koruyan en \u00f6nemli bile\u015fendir ve asla ba\u015fkalar\u0131yla payla\u015f\u0131lmamal\u0131d\u0131r.<\/p>\n<pre><code>\nopenssl genrsa -aes256 -out ca_key.pem 2048\n            <\/pre>\n<p><\/code><\/p>\n<div class=\"expert-tip\">\n                Uzman \u0130pucu: Anahtar\u0131 olu\u015ftururken sa\u011flam bir parola kulland\u0131\u011f\u0131n\u0131zdan emin olun. Bu parola, daha sonra sertifika imzalamak i\u00e7in gerekecektir.\n            <\/div>\n<\/li>\n<li><strong>CA Sertifika \u0130stek Dosyas\u0131n\u0131 (CSR) Olu\u015fturma:<\/strong>\n<p>Bu ad\u0131mda, CA \u00f6zel anahtar\u0131n\u0131 kullanarak bir sertifika istek dosyas\u0131 (<code>ca_csr.pem<\/code>) olu\u015fturuyoruz. Bu dosyada CA'n\u0131n kimlik bilgileri yer al\u0131r.<\/p>\n<pre><code>\nopenssl req -new -key ca_key.pem -out ca_csr.pem\n            <\/pre>\n<p><\/code><\/p>\n<p>Kar\u015f\u0131n\u0131za \u00e7\u0131kan sorular\u0131 doldurun. <code>Common Name<\/code> alan\u0131na 'My Own Root CA' gibi a\u00e7\u0131klay\u0131c\u0131 bir isim girebilirsiniz.<\/p>\n<\/li>\n<li><strong>CA K\u00f6k Sertifikas\u0131n\u0131 Olu\u015fturma (Kendi Kendini \u0130mzalama):<\/strong>\n<p>\u015eimdi, CA'n\u0131n kendi kendini imzalayan k\u00f6k sertifikas\u0131n\u0131 (<code>ca_certificate.pem<\/code>) olu\u015fturuyoruz. Bu sertifika, di\u011fer t\u00fcm sunucu ve istemci sertifikalar\u0131n\u0131 imzalamak i\u00e7in kullan\u0131lacak olan g\u00fcvenilir k\u00f6k olacakt\u0131r. 365 g\u00fcn (1 y\u0131l) ge\u00e7erli olacak \u015fekilde ayarlanm\u0131\u015ft\u0131r.<\/p>\n<pre><code>\nopenssl x509 -req -in ca_csr.pem -signkey ca_key.pem -out ca_certificate.pem -days 365\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00fc\u00e7 dosya (<code>ca_key.pem<\/code>, <code>ca_csr.pem<\/code>, <code>ca_certificate.pem<\/code>) CA'n\u0131z\u0131n temelini olu\u015fturur. <code>ca_certificate.pem<\/code> dosyas\u0131, RabbitMQ sunucusu ve Celery istemcileri taraf\u0131ndan g\u00fcvenilir CA olarak kullan\u0131lacakt\u0131r.<\/p>\n<\/ol>\n<h3>RabbitMQ Sunucusu i\u00e7in Sertifika ve Anahtar \u00dcretimi<\/h3>\n<p>CA'm\u0131z\u0131 olu\u015fturduktan sonra, RabbitMQ sunucumuz i\u00e7in bir \u00f6zel anahtar ve bu CA taraf\u0131ndan imzalanm\u0131\u015f bir sertifika olu\u015fturmal\u0131y\u0131z.<\/p>\n<ol>\n<li><strong>Sunucu \u00d6zel Anahtar\u0131n\u0131 Olu\u015fturma:<\/strong>\n<p>RabbitMQ sunucusunun kullanaca\u011f\u0131 \u00f6zel anahtar\u0131 (<code>server_key.pem<\/code>) olu\u015fturuyoruz. Bu da gizli tutulmas\u0131 gereken bir dosyad\u0131r.<\/p>\n<pre><code>\nopenssl genrsa -out server_key.pem 2048\n            <\/pre>\n<p><\/code>\n        <\/li>\n<li><strong>Sunucu Sertifika \u0130stek Dosyas\u0131n\u0131 (CSR) Olu\u015fturma:<\/strong>\n<p>Sunucu \u00f6zel anahtar\u0131n\u0131 kullanarak bir sertifika istek dosyas\u0131 (<code>server_csr.pem<\/code>) olu\u015fturuyoruz. <code>Common Name<\/code> alan\u0131na RabbitMQ sunucusunun hostname'ini veya IP adresini girmelisiniz (\u00f6rn: <code>rabbitmq.example.com<\/code>). Bu, istemcilerin sunucunun kimli\u011fini do\u011frulamas\u0131 i\u00e7in \u00f6nemlidir.<\/p>\n<pre><code>\nopenssl req -new -key server_key.pem -out server_csr.pem\n            <\/pre>\n<p><\/code>\n        <\/li>\n<li><strong>CA Taraf\u0131ndan Sunucu Sertifikas\u0131n\u0131 \u0130mzalama:<\/strong>\n<p>\u015eimdi, olu\u015fturdu\u011fumuz CA'y\u0131 kullanarak RabbitMQ sunucusunun sertifika istek dosyas\u0131n\u0131 (<code>server_csr.pem<\/code>) imzal\u0131yoruz. Bu i\u015flem sonucunda <code>server_certificate.pem<\/code> dosyas\u0131 olu\u015fur. Bu sertifika da 365 g\u00fcn ge\u00e7erli olacakt\u0131r.<\/p>\n<pre><code>\nopenssl x509 -req -in server_csr.pem -CA ca_certificate.pem -CAkey ca_key.pem -CAcreateserial -out server_certificate.pem -days 365\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131r\u0131rken CA \u00f6zel anahtar\u0131n\u0131z\u0131n parolas\u0131n\u0131 girmeniz istenecektir.<\/p>\n<\/ol>\n<p>Art\u0131k RabbitMQ sunucusu i\u00e7in gerekli olan <code>server_key.pem<\/code> (\u00f6zel anahtar) ve <code>server_certificate.pem<\/code> (sunucu sertifikas\u0131) dosyalar\u0131na sahibiz. Ayr\u0131ca <code>ca_certificate.pem<\/code> dosyas\u0131 da hem sunucu hem de istemciler i\u00e7in g\u00fcven zinciri k\u00f6k\u00fc olarak kullan\u0131lacak.<\/p>\n<h3>RabbitMQ Konfig\u00fcrasyonu: TLS\/SSL'i Aktifle\u015ftirme<\/h3>\n<p>Sertifikalar\u0131 olu\u015fturduktan sonra, RabbitMQ'yu bu sertifikalar\u0131 kullanarak TLS\/SSL ba\u011flant\u0131lar\u0131n\u0131 kabul edecek \u015fekilde yap\u0131land\u0131rmam\u0131z gerekiyor. RabbitMQ'nun konfig\u00fcrasyon dosyas\u0131 genellikle <code>rabbitmq.conf<\/code> veya <code>advanced.config<\/code> ad\u0131n\u0131 ta\u015f\u0131r ve genellikle <code>\/etc\/rabbitmq\/<\/code> dizininde bulunur.<\/p>\n<p>Konfig\u00fcrasyon dosyan\u0131z\u0131 a\u00e7\u0131n ve a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin veya g\u00fcncelleyin (yollar\u0131n do\u011fru oldu\u011fundan emin olun):<\/p>\n<pre><code>\n# \/etc\/rabbitmq\/rabbitmq.conf (ya da advanced.config)\n\nlisteners.ssl.default = 5671\nssl_options.versions.1 = tlsv1.2\nssl_options.versions.2 = tlsv1.3\nssl_options.verify = verify_peer\nssl_options.fail_if_no_peer_cert = true\nssl_options.cacertfile = \/path\/to\/ca_certificate.pem\nssl_options.certfile = \/path\/to\/server_certificate.pem\nssl_options.keyfile = \/path\/to\/server_key.pem\n            <\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki konfig\u00fcrasyon sat\u0131rlar\u0131n\u0131n anlamlar\u0131:<\/p>\n<ul>\n<li><code>listeners.ssl.default = 5671<\/code>: Varsay\u0131lan TLS\/SSL dinleme portunu 5671 olarak ayarlar (AMQP\/S i\u00e7in standart port).<\/li>\n<li><code>ssl_options.versions.1 = tlsv1.2<\/code> ve <code>ssl_options.versions.2 = tlsv1.3<\/code>: Sadece TLS 1.2 ve TLS 1.3 versiyonlar\u0131n\u0131n kullan\u0131lmas\u0131na izin verir, eski ve g\u00fcvensiz versiyonlar\u0131 (\u00f6rne\u011fin TLS 1.0, 1.1) devre d\u0131\u015f\u0131 b\u0131rak\u0131r.<\/li>\n<li><code>ssl_options.verify = verify_peer<\/code>: \u0130stemcinin sertifikas\u0131n\u0131 do\u011frulamas\u0131n\u0131 talep eder. Bu, kar\u015f\u0131l\u0131kl\u0131 TLS (mTLS) veya istemci sertifikas\u0131 do\u011frulamas\u0131 anlam\u0131na gelir.<\/li>\n<li><code>ssl_options.fail_if_no_peer_cert = true<\/code>: E\u011fer istemci bir sertifika sunmazsa veya sunulan sertifika do\u011frulanamazsa ba\u011flant\u0131n\u0131n reddedilmesini sa\u011flar. Bu, en y\u00fcksek g\u00fcvenlik seviyesini sa\u011flar.<\/li>\n<li><code>ssl_options.cacertfile<\/code>: CA k\u00f6k sertifika dosyan\u0131z\u0131n yolunu belirtir. RabbitMQ, bu sertifikay\u0131 kullanarak istemci sertifikalar\u0131n\u0131 do\u011frulayacakt\u0131r.<\/li>\n<li><code>ssl_options.certfile<\/code>: RabbitMQ sunucusunun kendi sertifika dosyas\u0131n\u0131n yolunu belirtir.<\/li>\n<li><code>ssl_options.keyfile<\/code>: RabbitMQ sunucusunun kendi \u00f6zel anahtar dosyas\u0131n\u0131n yolunu belirtir.<\/li>\n<\/ul>\n<p>Konfig\u00fcrasyon dosyas\u0131n\u0131 kaydettikten sonra, RabbitMQ servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code>\nsudo systemctl restart rabbitmq-server\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu ad\u0131mlarla RabbitMQ sunucunuz, TLS\/SSL \u00fczerinden g\u00fcvenli ba\u011flant\u0131lar\u0131 kabul etmeye haz\u0131r hale gelmi\u015ftir. Art\u0131k Celery istemcilerinin bu g\u00fcvenli ba\u011flant\u0131y\u0131 nas\u0131l kuraca\u011f\u0131n\u0131 yap\u0131land\u0131rmam\u0131z gerekiyor.<\/p>\n<h2>Celery \u0130stemcileri RabbitMQ ile TLS\/SSL \u00dczerinden Nas\u0131l \u0130leti\u015fim Kurar?<\/h2>\n<p>RabbitMQ sunucusunu TLS\/SSL ile yap\u0131land\u0131rd\u0131ktan sonra, Celery istemcilerinin (hem \u00fcreticilerin hem de worker'lar\u0131n) bu g\u00fcvenli ba\u011flant\u0131y\u0131 kullanacak \u015fekilde ayarlanmas\u0131 gerekir. Bu, istemcilerin RabbitMQ sunucusunun sertifikas\u0131n\u0131 do\u011frulayabilmesi ve iste\u011fe ba\u011fl\u0131 olarak kendi sertifikalar\u0131n\u0131 sunabilmesi i\u00e7in gereklidir. Bu b\u00f6l\u00fcmde, Celery istemcilerinizi g\u00fcvenli bir \u015fekilde nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve TLS\/SSL \u00fczerinden ileti\u015fim kurmak i\u00e7in kod \u00f6rneklerini inceleyece\u011fiz.<\/p>\n<h3>Celery \u0130stemcilerinde TLS\/SSL Konfig\u00fcrasyonu<\/h3>\n<p>Celery, broker ba\u011flant\u0131s\u0131 i\u00e7in <code>BROKER_URL<\/code> ayar\u0131n\u0131 kullan\u0131r. TLS\/SSL kullanmak i\u00e7in bu URL'yi ve ek SSL se\u00e7eneklerini yap\u0131land\u0131rman\u0131z gerekir. \u00d6ncelikle, Celery uygulaman\u0131z\u0131n ayarlar\u0131nda SSL ba\u011flam\u0131 i\u00e7in gerekli sertifika dosyalar\u0131n\u0131 belirtmelisiniz. Bu dosyalar \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>ca_certs<\/code>: RabbitMQ sunucusunun sertifikas\u0131n\u0131 imzalayan CA k\u00f6k sertifikas\u0131. Bu genellikle RabbitMQ sunucusunda kulland\u0131\u011f\u0131n\u0131z <code>ca_certificate.pem<\/code> dosyas\u0131d\u0131r.<\/li>\n<li><code>certfile<\/code>: Celery istemcisinin kendi sertifikas\u0131 (e\u011fer kar\u015f\u0131l\u0131kl\u0131 TLS kullan\u0131l\u0131yorsa). Bu da kendi CA'n\u0131z taraf\u0131ndan imzalanm\u0131\u015f bir istemci sertifikas\u0131 olmal\u0131d\u0131r.<\/li>\n<li><code>keyfile<\/code>: Celery istemcisinin kendi \u00f6zel anahtar\u0131 (e\u011fer kar\u015f\u0131l\u0131kl\u0131 TLS kullan\u0131l\u0131yorsa).<\/li>\n<li><code>ssl_cert_reqs<\/code>: Sertifika do\u011frulama gereksinimini belirtir. <code>ssl.CERT_REQUIRED<\/code> genellikle \u00f6nerilen ayard\u0131r, bu sayede sunucunun kimli\u011fi do\u011frulan\u0131r.<\/li>\n<li><code>ssl_version<\/code>: Kullan\u0131lacak TLS s\u00fcr\u00fcm\u00fc (\u00f6rn: <code>ssl.PROTOCOL_TLSv1_2<\/code> veya <code>ssl.PROTOCOL_TLSv1_3<\/code>).<\/li>\n<\/ul>\n<p>Bu dosyalar\u0131 olu\u015fturmak i\u00e7in RabbitMQ sunucusu i\u00e7in yapt\u0131\u011f\u0131m\u0131z gibi ad\u0131mlar\u0131 tekrarlayabiliriz. Ancak bu sefer 'server' yerine 'client' ad\u0131n\u0131 kullanarak:<\/p>\n<ol>\n<li><strong>\u0130stemci \u00d6zel Anahtar\u0131n\u0131 Olu\u015fturma:<\/strong>\n<pre><code>\nopenssl genrsa -out client_key.pem 2048\n            <\/pre>\n<p><\/code>\n        <\/li>\n<li><strong>\u0130stemci Sertifika \u0130stek Dosyas\u0131n\u0131 (CSR) Olu\u015fturma:<\/strong>\n<pre><code>\nopenssl req -new -key client_key.pem -out client_csr.pem\n            <\/pre>\n<p><\/code><\/p>\n<p><code>Common Name<\/code> alan\u0131na istemcinin ad\u0131n\u0131 girebilirsiniz (\u00f6rn: <code>celery_client_1<\/code>).<\/p>\n<\/li>\n<li><strong>CA Taraf\u0131ndan \u0130stemci Sertifikas\u0131n\u0131 \u0130mzalama:<\/strong>\n<pre><code>\nopenssl x509 -req -in client_csr.pem -CA ca_certificate.pem -CAkey ca_key.pem -CAcreateserial -out client_certificate.pem -days 365\n            <\/pre>\n<p><\/code><\/p>\n<p>CA \u00f6zel anahtar\u0131n\u0131z\u0131n parolas\u0131n\u0131 girmeniz istenecektir.<\/p>\n<\/ol>\n<p>    Bu ad\u0131mlarla, <code>client_key.pem<\/code> ve <code>client_certificate.pem<\/code> dosyalar\u0131 istemci taraf\u0131nda kullan\u0131lmak \u00fczere haz\u0131r hale gelmi\u015f olur. <code>ca_certificate.pem<\/code> dosyas\u0131n\u0131 da istemcinin eri\u015febilece\u011fi bir konuma kopyalamay\u0131 unutmay\u0131n.<\/p>\n<p>Celery konfig\u00fcrasyonunuzda bu dosyalar\u0131 kullanarak g\u00fcvenli ba\u011flant\u0131y\u0131 kurabilirsiniz. \u00d6rnek bir <code>celeryconfig.py<\/code> dosyas\u0131 \u015f\u00f6yle g\u00f6r\u00fcnebilir:<\/p>\n<pre><code>\n# celeryconfig.py\n\nimport ssl\nimport os\n\n# Sertifika dosyalar\u0131n\u0131n yollar\u0131\nBASE_DIR = os.path.dirname(os.path.abspath(__file__))\nSSL_CA_CERTS = os.path.join(BASE_DIR, 'certs', 'ca_certificate.pem')\nSSL_CLIENT_CERT = os.path.join(BASE_DIR, 'certs', 'client_certificate.pem')\nSSL_CLIENT_KEY = os.path.join(BASE_DIR, 'certs', 'client_key.pem')\n\n# Broker URL'i, ssl=true ile g\u00fcvenli ba\u011flant\u0131 belirtilir\nbroker_url = 'amqps:\/\/guest:guest@localhost:5671\/\/' # localhost yerine RabbitMQ sunucunuzun IP\/hostname'i\n\n# SSL se\u00e7enekleri\nbroker_use_ssl = {\n    'ca_certs': SSL_CA_CERTS,\n    'certfile': SSL_CLIENT_CERT,\n    'keyfile': SSL_CLIENT_KEY,\n    'cert_reqs': ssl.CERT_REQUIRED, # Sunucu sertifikas\u0131 do\u011frulamas\u0131 zorunlu\n    'ssl_version': ssl.PROTOCOL_TLSv1_2 # Ya da ssl.PROTOCOL_TLSv1_3\n}\n\n# Sonu\u00e7 backendi i\u00e7in de SSL kullanmak isterseniz (\u00f6rne\u011fin RabbitMQ da kullan\u0131yorsan\u0131z)\n# result_backend = 'rpc:\/\/'\n# result_backend_transport_options = {\n#     'ssl_options': broker_use_ssl\n# }\n            <\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>broker_url<\/code> \u015femas\u0131 <code>amqps:\/\/<\/code> olarak de\u011fi\u015ftirilmi\u015ftir ve RabbitMQ'nun dinledi\u011fi g\u00fcvenli port olan 5671 kullan\u0131lm\u0131\u015ft\u0131r. <code>broker_use_ssl<\/code> s\u00f6zl\u00fc\u011f\u00fc, t\u00fcm SSL\/TLS ile ilgili parametreleri i\u00e7erir. <code>cert_reqs: ssl.CERT_REQUIRED<\/code> ayar\u0131, RabbitMQ sunucusunun istemci taraf\u0131ndan do\u011frulanmas\u0131n\u0131 zorunlu k\u0131lar. Bu, man-in-the-middle sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar.<\/p>\n<h3>Celery G\u00f6revleri i\u00e7in G\u00fcvenli Ba\u011flant\u0131 \u00d6rnekleri<\/h3>\n<p>Celery uygulaman\u0131z\u0131 bu konfig\u00fcrasyonla ba\u015flatt\u0131\u011f\u0131n\u0131zda, t\u00fcm g\u00f6revleriniz RabbitMQ ile TLS\/SSL \u00fczerinden g\u00fcvenli bir \u015fekilde ileti\u015fim kuracakt\u0131r. \u00d6rnek bir Celery uygulamas\u0131:<\/p>\n<pre><code>\n# app.py\nfrom celery import Celery\nimport os\n\n# Certs klas\u00f6r\u00fcn\u00fcz\u00fcn do\u011fru konumda oldu\u011fundan emin olun\n# Bu \u00f6rnekte, app.py ile ayn\u0131 dizinde bir 'certs' klas\u00f6r\u00fc varsay\u0131l\u0131yor\nBASE_DIR = os.path.dirname(os.path.abspath(__file__))\nSSL_CA_CERTS = os.path.join(BASE_DIR, 'certs', 'ca_certificate.pem')\nSSL_CLIENT_CERT = os.path.join(BASE_DIR, 'certs', 'client_certificate.pem')\nSSL_CLIENT_KEY = os.path.join(BASE_DIR, 'certs', 'client_key.pem')\n\n# broker_use_ssl ayarlar\u0131n\u0131 do\u011frudan Celery uygulamas\u0131n\u0131 tan\u0131mlarken de verebilirsiniz\napp = Celery('my_app',\n             broker='amqps:\/\/guest:guest@localhost:5671\/\/',\n             backend='rpc:\/\/') # veya amqps:\/\/... e\u011fer backend de TLS kullan\u0131yorsa\n\n# SSL se\u00e7eneklerini app.conf.broker_use_ssl'e atay\u0131n\nimport ssl\napp.conf.broker_use_ssl = {\n    'ca_certs': SSL_CA_CERTS,\n    'certfile': SSL_CLIENT_CERT,\n    'keyfile': SSL_CLIENT_KEY,\n    'cert_reqs': ssl.CERT_REQUIRED,\n    'ssl_version': ssl.PROTOCOL_TLSv1_2\n}\n\n@app.task\ndef add(x, y):\n    print(f\"Toplama i\u015flemi: {x} + {y}\")\n    return x + y\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu <code>app.py<\/code> dosyas\u0131n\u0131 <code>certs<\/code> klas\u00f6r\u00fcyle birlikte uygun bir dizine yerle\u015ftirin. <code>ca_certificate.pem<\/code>, <code>client_certificate.pem<\/code> ve <code>client_key.pem<\/code> dosyalar\u0131n\u0131n <code>certs<\/code> klas\u00f6r\u00fcnde oldu\u011fundan emin olun.<\/p>\n<h4>Celery Worker'\u0131 Ba\u015flatma:<\/h4>\n<p>A\u015fa\u011f\u0131daki komutla Celery worker'\u0131n\u0131z\u0131 ba\u015flat\u0131n:<\/p>\n<pre><code>\ncelery -A app worker --loglevel=info\n            <\/pre>\n<p><\/code><\/p>\n<h4>G\u00f6rev G\u00f6nderme (Producer):<\/h4>\n<p>Ba\u015fka bir Python beti\u011fi veya ayn\u0131 <code>app.py<\/code> \u00fczerinden g\u00f6rev g\u00f6nderebilirsiniz:<\/p>\n<pre><code>\n# producer.py\nfrom app import add\n\nresult = add.delay(4, 4)\nprint(f\"G\u00f6rev g\u00f6nderildi, g\u00f6rev ID: {result.id}\")\nprint(f\"Sonu\u00e7 bekleniyor... {result.get(timeout=10)}\")\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu ad\u0131mlar\u0131 izleyerek, Celery istemcileriniz ve RabbitMQ broker'\u0131n\u0131z aras\u0131nda tamamen \u015fifrelenmi\u015f ve kimli\u011fi do\u011frulanm\u0131\u015f bir ileti\u015fim kurmu\u015f olacaks\u0131n\u0131z. Bu, uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini art\u0131r\u0131rken, hassas verilerinizi a\u011fdaki potansiyel tehditlere kar\u015f\u0131 koruman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>Geli\u015fmi\u015f G\u00fcvenlik Senaryolar\u0131 ve En \u0130yi Uygulamalar Nelerdir?<\/h2>\n<p>RabbitMQ ve Celery kurulumunuzu temel TLS\/SSL ile g\u00fcvence alt\u0131na almak harika bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r, ancak g\u00fcvenlik katmanlar\u0131n\u0131 daha da g\u00fc\u00e7lendirmek i\u00e7in uygulanabilecek geli\u015fmi\u015f senaryolar ve en iyi uygulamalar mevcuttur. Bu b\u00f6l\u00fcmde, daha sa\u011flam bir g\u00fcvenlik duru\u015fu sa\u011flamak i\u00e7in istemci sertifikas\u0131 do\u011frulamas\u0131ndan a\u011f segmentasyonuna ve ger\u00e7ek d\u00fcnya vaka analizlerine kadar \u00e7e\u015fitli konular\u0131 ele alaca\u011f\u0131z.<\/p>\n<h3>M\u00fc\u015fteri Sertifikas\u0131 Do\u011frulama (Client Certificate Verification)<\/h3>\n<p>\u00d6nceki b\u00f6l\u00fcmlerde, RabbitMQ sunucusunun Celery istemcilerinin sertifikalar\u0131n\u0131 do\u011frulamak \u00fczere nas\u0131l ayarlanabilece\u011fini g\u00f6rd\u00fck (<code>ssl_options.verify = verify_peer<\/code> ve <code>ssl_options.fail_if_no_peer_cert = true<\/code>). Bu, kar\u015f\u0131l\u0131kl\u0131 TLS (mTLS) olarak bilinir ve her iki taraf\u0131n da birbirlerinin kimli\u011fini do\u011frulamas\u0131 anlam\u0131na gelir. Bu, tek y\u00f6nl\u00fc TLS'ye g\u00f6re \u00f6nemli \u00f6l\u00e7\u00fcde daha y\u00fcksek bir g\u00fcvenlik seviyesi sunar.<\/p>\n<p><strong>Neden \u00d6nemli?<\/strong> Tek y\u00f6nl\u00fc TLS'de, yaln\u0131zca istemci sunucunun kimli\u011fini do\u011frular. Bu, istemcinin do\u011fru RabbitMQ sunucusuna ba\u011fland\u0131\u011f\u0131ndan emin olmas\u0131n\u0131 sa\u011flar. Ancak, sunucuya kim olursa olsun ba\u011flanmas\u0131na izin verilir, sadece kullan\u0131c\u0131 ad\u0131\/\u015fifre ile kimlik do\u011frulama yap\u0131l\u0131r. mTLS ile, RabbitMQ sunucusu da ba\u011flant\u0131 kurmaya \u00e7al\u0131\u015fan Celery istemcisinin ger\u00e7ekte iddia etti\u011fi istemci olup olmad\u0131\u011f\u0131n\u0131 do\u011frular. Bu, yetkisiz istemcilerin (do\u011fru kullan\u0131c\u0131 ad\u0131\/\u015fifreye sahip olsalar bile) g\u00fcvenli kanala eri\u015fmesini engeller, \u00e7\u00fcnk\u00fc ge\u00e7erli bir istemci sertifikas\u0131na sahip olmalar\u0131 gerekir. Bu, sald\u0131rganlar\u0131n ele ge\u00e7irilmi\u015f kimlik bilgileriyle bile sisteme s\u0131zmas\u0131n\u0131 zorla\u015ft\u0131r\u0131r.<\/p>\n<p><strong>Uygulama \u0130pu\u00e7lar\u0131:<\/strong><\/p>\n<ul>\n<li>Her Celery istemcisi (veya istemci grubu) i\u00e7in benzersiz sertifikalar olu\u015fturun. Bu, bir sertifikan\u0131n tehlikeye girmesi durumunda sadece o istemcinin eri\u015fimini iptal etmenizi sa\u011flar.<\/li>\n<li>Sertifikalar\u0131n ge\u00e7erlilik s\u00fcrelerini dikkatlice y\u00f6netin. S\u00fcresi dolmu\u015f sertifikalar eri\u015fim sorunlar\u0131na neden olabilir. Otomatik sertifika yenileme s\u00fcre\u00e7leri uygulay\u0131n.<\/li>\n<li>Sertifika \u0130ptal Listeleri (CRL) veya Online Sertifika Durum Protokol\u00fc (OCSP) kullanarak tehlikeye giren sertifikalar\u0131 h\u0131zl\u0131ca iptal edin ve RabbitMQ'nun bu listeleri kontrol etmesini sa\u011flay\u0131n. RabbitMQ, bu kontrolleri destekler ve konfig\u00fcrasyonunda belirlenen CRL veya OCSP URL'lerini kullanarak sertifikalar\u0131n g\u00fcncel durumunu sorgulayabilir.<\/li>\n<\/ul>\n<h3>G\u00fcvenlik Duvar\u0131 Kurallar\u0131 ve A\u011f Segmentasyonu<\/h3>\n<p>TLS\/SSL, ileti\u015fim katman\u0131nda g\u00fc\u00e7l\u00fc bir g\u00fcvenlik sa\u011flarken, a\u011f seviyesindeki g\u00fcvenlik \u00f6nlemleri genel duru\u015funuzu daha da g\u00fc\u00e7lendirir. G\u00fcvenlik duvar\u0131 kurallar\u0131 ve a\u011f segmentasyonu, RabbitMQ ve Celery aras\u0131ndaki ileti\u015fimi izole etmek i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<ul>\n<li><strong>Minimum Ayr\u0131cal\u0131k Prensibi:<\/strong> Sadece RabbitMQ sunucusuna ve Celery worker'lar\u0131na ihtiya\u00e7 duyan sistemlerin, belirli portlar \u00fczerinden (\u00f6rn: 5671 TLS i\u00e7in) eri\u015fime izin verin. Di\u011fer t\u00fcm portlar ve kaynak IP adresleri i\u00e7in eri\u015fimi engelleyin.<\/li>\n<li><strong>A\u011f Segmentasyonu:<\/strong> RabbitMQ sunucunuzu ve Celery worker'lar\u0131n\u0131z\u0131 m\u00fcmk\u00fcn oldu\u011funca ayr\u0131 a\u011f segmentlerine (\u00f6rne\u011fin, \u00f6zel VLAN'lar veya alt a\u011flar) yerle\u015ftirin. Bu, bir segmentteki bir ihlalin di\u011fer segmentlere yay\u0131lmas\u0131n\u0131 engeller. \u00d6rne\u011fin, Celery worker'lar\u0131n\u0131z\u0131n bulundu\u011fu segmentten RabbitMQ'ya giden trafi\u011fe izin verin, ancak di\u011fer herhangi bir segmentten gelen trafi\u011fi k\u0131s\u0131tlay\u0131n.<\/li>\n<li><strong>Ters Proxy veya Y\u00fck Dengeleyici Kullan\u0131m\u0131:<\/strong> B\u00fcy\u00fck \u00f6l\u00e7ekli da\u011f\u0131t\u0131mlarda, RabbitMQ k\u00fcmesinin \u00f6n\u00fcne bir ters proxy (\u00f6rne\u011fin Nginx) veya bir y\u00fck dengeleyici (\u00f6rne\u011fin HAProxy) yerle\u015ftirmek, TLS sonland\u0131rmas\u0131n\u0131 bu katmanda yapman\u0131za olanak tan\u0131r. Bu, RabbitMQ sunucular\u0131n\u0131n do\u011frudan internete a\u00e7\u0131k olmas\u0131n\u0131 engeller ve ek bir g\u00fcvenlik katman\u0131 sa\u011flar. Ayr\u0131ca, bu proxy'ler \u00fczerinde ek g\u00fcvenlik kontrolleri (WAF - Web Application Firewall gibi) uygulayabilirsiniz.<\/li>\n<\/ul>\n<div class=\"expert-tip\">\n        Uzman \u0130pucu: RabbitMQ y\u00f6netim aray\u00fcz\u00fc (port 15672) i\u00e7in de TLS kullanmay\u0131 ve bu portu sadece g\u00fcvenilir IP adreslerinden eri\u015filebilir k\u0131lmay\u0131 unutmay\u0131n. Bu aray\u00fcz de hassas bilgiler i\u00e7erir.\n    <\/div>\n<h3>Vaka Analizi: B\u00fcy\u00fck \u00d6l\u00e7ekli Bir Uygulamada G\u00fcvenli Mesajla\u015fma<\/h3>\n<p>Bir Finansal Teknoloji (FinTech) \u015firketinin, m\u00fc\u015fteri \u00f6deme i\u015flemlerini ve bildirimlerini i\u015flemek i\u00e7in RabbitMQ ve Celery kulland\u0131\u011f\u0131n\u0131 varsayal\u0131m. Bu sistem, g\u00fcnl\u00fck milyonlarca i\u015flem mesaj\u0131n\u0131 y\u00f6netiyor ve s\u0131k\u0131 d\u00fczenleyici standartlara (PCI DSS, GDPR) uymak zorunda.<\/p>\n<p><strong>Sorun:<\/strong> Ba\u015flang\u0131\u00e7ta, \u015firket RabbitMQ ve Celery aras\u0131nda varsay\u0131lan, \u015fifresiz AMQP ba\u011flant\u0131lar\u0131n\u0131 kullan\u0131yordu. Bu durum, bir sald\u0131rgan\u0131n a\u011f trafi\u011fini ele ge\u00e7irmesi durumunda m\u00fc\u015fteri kredi kart\u0131 bilgilerini, i\u015flem detaylar\u0131n\u0131 ve ki\u015fisel verilerini \u00e7alma riski ta\u015f\u0131yordu.<\/p>\n<p><strong>Uygulanan \u00c7\u00f6z\u00fcm:<\/strong><\/p>\n<ol>\n<li><strong>Kurumsal CA Yap\u0131land\u0131rmas\u0131:<\/strong> \u015eirket, t\u00fcm i\u00e7 sistemler i\u00e7in g\u00fcvenilir bir Kurumsal Sertifika Yetkilisi (CA) olu\u015fturdu. Bu CA, t\u00fcm RabbitMQ sunucular\u0131 ve Celery worker'lar\u0131 i\u00e7in sertifikalar\u0131 imzalad\u0131.<\/li>\n<li><strong>Kar\u015f\u0131l\u0131kl\u0131 TLS (mTLS) Uygulamas\u0131:<\/strong> T\u00fcm RabbitMQ sunucular\u0131, <code>ssl_options.verify = verify_peer<\/code> ve <code>ssl_options.fail_if_no_peer_cert = true<\/code> ile yap\u0131land\u0131r\u0131ld\u0131. Bu, sadece yetkili, CA taraf\u0131ndan imzalanm\u0131\u015f istemci sertifikas\u0131na sahip Celery worker'lar\u0131n\u0131n RabbitMQ'ya ba\u011flanabilmesini sa\u011flad\u0131.<\/li>\n<li><strong>A\u011f Segmentasyonu ve G\u00fcvenlik Duvarlar\u0131:<\/strong>\n<ul>\n<li>RabbitMQ k\u00fcmesi, \u00f6zel bir \"broker a\u011f\u0131\" segmentine yerle\u015ftirildi.<\/li>\n<li>Celery worker'lar\u0131, ayr\u0131 bir \"i\u015flemci a\u011f\u0131\" segmentinde bar\u0131nd\u0131r\u0131ld\u0131.<\/li>\n<li>Sadece \"i\u015flemci a\u011f\u0131\"ndan \"broker a\u011f\u0131\"na, port 5671 (AMQPS) \u00fczerinden TLS trafi\u011fine izin veren g\u00fcvenlik duvar\u0131 kurallar\u0131 uyguland\u0131. Di\u011fer t\u00fcm portlar ve segmentlerden gelen trafik engellendi.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Sertifika Y\u00f6netim Otomasyonu:<\/strong> Sertifikalar\u0131n s\u00fcresi doldu\u011funda otomatik olarak yenilenmesini ve da\u011f\u0131t\u0131lmas\u0131n\u0131 sa\u011flayan bir otomasyon arac\u0131 (\u00f6rne\u011fin HashiCorp Vault veya cert-manager) entegre edildi. Ayr\u0131ca, tehlikeye giren sertifikalar\u0131n an\u0131nda iptal edilebilmesi i\u00e7in CRL mekanizmalar\u0131 kuruldu.<\/li>\n<li><strong>G\u00f6zetim ve Loglama:<\/strong> T\u00fcm TLS ba\u011flant\u0131 giri\u015fimleri ve sertifika do\u011frulama hatalar\u0131 detayl\u0131 bir \u015fekilde logland\u0131 ve merkezi bir log y\u00f6netim sistemine (SIEM) g\u00f6nderildi. Anormal ba\u011flant\u0131 giri\u015fimleri veya ba\u015far\u0131s\u0131z do\u011frulamalar i\u00e7in otomatik uyar\u0131lar kuruldu.<\/li>\n<\/ol>\n<p><strong>Sonu\u00e7:<\/strong> Bu kapsaml\u0131 g\u00fcvenlik \u00f6nlemleri sayesinde, FinTech \u015firketi \u00f6deme i\u015flemlerini ve m\u00fc\u015fteri bildirimlerini u\u00e7tan uca \u015fifreleyerek ve her iki taraf\u0131n kimli\u011fini do\u011frulayarak g\u00fcvenli hale getirdi. Bu sadece d\u00fczenleyici uyumlulu\u011fu sa\u011flamakla kalmad\u0131, ayn\u0131 zamanda m\u00fc\u015fteri g\u00fcvenini art\u0131rd\u0131 ve potansiyel veri ihlali risklerini \u00f6nemli \u00f6l\u00e7\u00fcde azaltt\u0131. Bu vaka analizi, sadece TLS\/SSL uygulamas\u0131n\u0131n de\u011fil, ayn\u0131 zamanda mTLS, a\u011f g\u00fcvenli\u011fi ve sertifika y\u00f6netimi gibi ek katmanlar\u0131n entegrasyonunun ne kadar kritik oldu\u011funu g\u00f6stermektedir.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>RabbitMQ ve Celery ikilisini TLS\/SSL ile g\u00fcvence alt\u0131na almak, modern da\u011f\u0131t\u0131k sistemler i\u00e7in vazge\u00e7ilmez bir ad\u0131md\u0131r. Bu makale boyunca, \u00f6ncelikle veri g\u00fcvenli\u011finin neden kritik oldu\u011funu, ard\u0131ndan RabbitMQ ve Celery'nin temellerini ve TLS\/SSL'in nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 inceledik. Daha sonra, kendi Sertifika Yetkilinizi olu\u015fturmaktan, RabbitMQ sunucusunu ve Celery istemcilerini TLS\/SSL ile yap\u0131land\u0131rmaya kadar ad\u0131m ad\u0131m uygulanan bir rehber sunduk. Son olarak, mTLS, a\u011f segmentasyonu ve ger\u00e7ek d\u00fcnya vaka analizleri gibi geli\u015fmi\u015f g\u00fcvenlik senaryolar\u0131n\u0131 ele alarak, g\u00fcvenlik duru\u015funuzu daha da g\u00fc\u00e7lendirmenize yard\u0131mc\u0131 olacak ipu\u00e7lar\u0131 payla\u015ft\u0131k.<\/p>\n<p>Bu ad\u0131mlar\u0131 dikkatle takip ederek, RabbitMQ broker'\u0131n\u0131z ile Celery \u00fcreticileriniz ve worker'lar\u0131n\u0131z aras\u0131ndaki t\u00fcm ileti\u015fimi \u015fifreleyebilir, veri gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flayabilirsiniz. Bu, sadece hassas verileri korumakla kalmaz, ayn\u0131 zamanda yasal d\u00fczenlemelere uyum sa\u011flaman\u0131za ve sisteminizin genel g\u00fcvenilirli\u011fini art\u0131rman\u0131za yard\u0131mc\u0131 olur. Unutmay\u0131n, g\u00fcvenlik s\u00fcrekli bir s\u00fcre\u00e7tir ve d\u00fczenli olarak sertifika y\u00f6netimi, g\u00fcvenlik duvar\u0131 kurallar\u0131 ve izleme pratiklerini g\u00f6zden ge\u00e7irmek, sisteminizi olas\u0131 tehditlere kar\u015f\u0131 koruman\u0131n anahtar\u0131d\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<dl>\n<dt>TLS\/SSL kullanmak RabbitMQ ve Celery performans\u0131n\u0131 etkiler mi?<\/dt>\n<dd>Evet, TLS\/SSL \u015fifreleme ve \u015fifre \u00e7\u00f6zme i\u015flemleri ek i\u015flemci ve a\u011f y\u00fck\u00fc getirece\u011finden performans\u0131 bir miktar etkileyebilir. Ancak, modern donan\u0131m ve TLS optimizasyonlar\u0131 sayesinde bu etki genellikle kabul edilebilir seviyelerdedir. G\u00fcvenlik, \u00e7o\u011fu senaryoda hafif performans d\u00fc\u015f\u00fc\u015f\u00fcnden daha \u00f6nceliklidir.<\/dd>\n<dt>Kendi kendini imzalam\u0131\u015f sertifikalar \u00fcretim ortamlar\u0131 i\u00e7in g\u00fcvenli midir?<\/dt>\n<dd>Genel olarak hay\u0131r. Kendi kendini imzalam\u0131\u015f sertifikalar, g\u00fcven zincirini d\u0131\u015f bir CA'ya ba\u011flamad\u0131klar\u0131 i\u00e7in d\u0131\u015far\u0131dan g\u00fcvenilir de\u011fildir. Test ve geli\u015ftirme ortamlar\u0131 i\u00e7in uygun olsalar da, \u00fcretimde genellikle ticari bir CA'dan al\u0131nm\u0131\u015f sertifikalar veya kurum i\u00e7i bir CA taraf\u0131ndan imzalanm\u0131\u015f sertifikalar tercih edilmelidir. Bu, istemcilerin sertifikay\u0131 otomatik olarak g\u00fcvenmesini ve merkezi y\u00f6netim sa\u011flamas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/dd>\n<dt>Celery'nin sonu\u00e7 backendi (result backend) i\u00e7in de TLS kullanmal\u0131 m\u0131y\u0131m?<\/dt>\n<dd>E\u011fer sonu\u00e7 backendi de hassas veriler i\u00e7eriyorsa veya a\u011f \u00fczerinde g\u00fcvenliksiz bir \u015fekilde iletiliyorsa, evet kullanmal\u0131s\u0131n\u0131z. \u00d6zellikle RabbitMQ'yu hem broker hem de sonu\u00e7 backendi olarak kullan\u0131yorsan\u0131z, broker i\u00e7in yapt\u0131\u011f\u0131n\u0131z TLS yap\u0131land\u0131rmas\u0131 sonu\u00e7 backendi i\u00e7in de ge\u00e7erli olabilir. Redis gibi farkl\u0131 bir sonu\u00e7 backendi kullan\u0131yorsan\u0131z, onun i\u00e7in de uygun TLS yap\u0131land\u0131rmalar\u0131n\u0131 ara\u015ft\u0131rman\u0131z gerekir.<\/dd>\n<dt>Sertifikalar\u0131n s\u00fcresi dolarsa ne olur?<\/dt>\n<dd>Sertifikalar\u0131n s\u00fcresi doldu\u011funda, RabbitMQ ve Celery aras\u0131ndaki TLS ba\u011flant\u0131lar\u0131 kurulamaz hale gelir. Bu durum, uygulaman\u0131z\u0131n \u00e7al\u0131\u015fmas\u0131n\u0131 durdurur. Bu y\u00fczden sertifika y\u00f6netimini (yenileme ve da\u011f\u0131t\u0131m) otomatikle\u015ftirmek ve s\u00fcresi dolan sertifikalar hakk\u0131nda uyar\u0131 almak kritik \u00f6neme sahiptir.<\/dd>\n<dt>Her Celery worker i\u00e7in ayr\u0131 bir sertifika olu\u015fturmal\u0131 m\u0131y\u0131m?<\/dt>\n<dd>Bu, g\u00fcvenlik seviyenize ve y\u00f6netim kolayl\u0131\u011f\u0131n\u0131za ba\u011fl\u0131d\u0131r. En y\u00fcksek g\u00fcvenlik i\u00e7in evet, her worker i\u00e7in benzersiz bir sertifika olu\u015fturmak en iyisidir. Bu sayede, tek bir worker'\u0131n sertifikas\u0131 tehlikeye girse bile, di\u011ferlerinin g\u00fcvenli\u011fi etkilenmez ve sadece o sertifikay\u0131 iptal edebilirsiniz. Ancak, bu durum y\u00f6netim y\u00fck\u00fcn\u00fc art\u0131rabilir. Daha az kat\u0131 gereksinimler i\u00e7in, ayn\u0131 sertifikay\u0131 bir grup worker aras\u0131nda payla\u015fmak da m\u00fcmk\u00fcnd\u00fcr, ancak bu durumda g\u00fcvenlik seviyesi d\u00fc\u015fer.<\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Modern da\u011f\u0131t\u0131k sistemlerde, verilerin g\u00fcvenli bir \u015fekilde iletilmesi hayati \u00f6nem ta\u015f\u0131r. RabbitMQ ve Celery ikilisi, asenkron g\u00f6rev y\u00f6netimi&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[874],"tags":[],"class_list":{"0":"post-34431","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-server","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?<\/title>\n<meta name=\"description\" content=\"Modern da\u011f\u0131t\u0131k sistemlerde, verilerin g\u00fcvenli bir \u015fekilde iletilmesi hayati \u00f6nem ta\u015f\u0131r. RabbitMQ ve Celery ikilisi, asenkron g\u00f6rev y\u00f6netimi i\u00e7in g\u00fc\u00e7l\u00fc bir kombinasyon sunarken, bu ileti\u015fimin \u015fifrelenmesi ve kimlik do\u011frulamas\u0131 s\u0131kl\u0131kla g\u00f6z ard\u0131 edilebilir. Bu makalede, RabbitMQ ve Celery aras\u0131nda TLS\/SSL kullanarak nas\u0131l g\u00fcvenli bir ba\u011flant\u0131 kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz, b\u00f6ylece verilerinizin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flayabileceksiniz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?\" \/>\n<meta property=\"og:description\" content=\"Modern da\u011f\u0131t\u0131k sistemlerde, verilerin g\u00fcvenli bir \u015fekilde iletilmesi hayati \u00f6nem ta\u015f\u0131r. RabbitMQ ve Celery ikilisi, asenkron g\u00f6rev y\u00f6netimi i\u00e7in g\u00fc\u00e7l\u00fc bir kombinasyon sunarken, bu ileti\u015fimin \u015fifrelenmesi ve kimlik do\u011frulamas\u0131 s\u0131kl\u0131kla g\u00f6z ard\u0131 edilebilir. Bu makalede, RabbitMQ ve Celery aras\u0131nda TLS\/SSL kullanarak nas\u0131l g\u00fcvenli bir ba\u011flant\u0131 kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz, b\u00f6ylece verilerinizin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flayabileceksiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-16T12:31:11+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"28 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?\",\"datePublished\":\"2025-11-16T12:31:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/\"},\"wordCount\":4967,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Server\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/\",\"name\":\"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-16T12:31:11+00:00\",\"description\":\"Modern da\u011f\u0131t\u0131k sistemlerde, verilerin g\u00fcvenli bir \u015fekilde iletilmesi hayati \u00f6nem ta\u015f\u0131r. RabbitMQ ve Celery ikilisi, asenkron g\u00f6rev y\u00f6netimi i\u00e7in g\u00fc\u00e7l\u00fc bir kombinasyon sunarken, bu ileti\u015fimin \u015fifrelenmesi ve kimlik do\u011frulamas\u0131 s\u0131kl\u0131kla g\u00f6z ard\u0131 edilebilir. Bu makalede, RabbitMQ ve Celery aras\u0131nda TLS\/SSL kullanarak nas\u0131l g\u00fcvenli bir ba\u011flant\u0131 kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz, b\u00f6ylece verilerinizin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flayabileceksiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?","description":"Modern da\u011f\u0131t\u0131k sistemlerde, verilerin g\u00fcvenli bir \u015fekilde iletilmesi hayati \u00f6nem ta\u015f\u0131r. RabbitMQ ve Celery ikilisi, asenkron g\u00f6rev y\u00f6netimi i\u00e7in g\u00fc\u00e7l\u00fc bir kombinasyon sunarken, bu ileti\u015fimin \u015fifrelenmesi ve kimlik do\u011frulamas\u0131 s\u0131kl\u0131kla g\u00f6z ard\u0131 edilebilir. Bu makalede, RabbitMQ ve Celery aras\u0131nda TLS\/SSL kullanarak nas\u0131l g\u00fcvenli bir ba\u011flant\u0131 kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz, b\u00f6ylece verilerinizin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flayabileceksiniz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/","og_locale":"tr_TR","og_type":"article","og_title":"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?","og_description":"Modern da\u011f\u0131t\u0131k sistemlerde, verilerin g\u00fcvenli bir \u015fekilde iletilmesi hayati \u00f6nem ta\u015f\u0131r. RabbitMQ ve Celery ikilisi, asenkron g\u00f6rev y\u00f6netimi i\u00e7in g\u00fc\u00e7l\u00fc bir kombinasyon sunarken, bu ileti\u015fimin \u015fifrelenmesi ve kimlik do\u011frulamas\u0131 s\u0131kl\u0131kla g\u00f6z ard\u0131 edilebilir. Bu makalede, RabbitMQ ve Celery aras\u0131nda TLS\/SSL kullanarak nas\u0131l g\u00fcvenli bir ba\u011flant\u0131 kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz, b\u00f6ylece verilerinizin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flayabileceksiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-16T12:31:11+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"28 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?","datePublished":"2025-11-16T12:31:11+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/"},"wordCount":4967,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Server"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/","url":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/","name":"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-16T12:31:11+00:00","description":"Modern da\u011f\u0131t\u0131k sistemlerde, verilerin g\u00fcvenli bir \u015fekilde iletilmesi hayati \u00f6nem ta\u015f\u0131r. RabbitMQ ve Celery ikilisi, asenkron g\u00f6rev y\u00f6netimi i\u00e7in g\u00fc\u00e7l\u00fc bir kombinasyon sunarken, bu ileti\u015fimin \u015fifrelenmesi ve kimlik do\u011frulamas\u0131 s\u0131kl\u0131kla g\u00f6z ard\u0131 edilebilir. Bu makalede, RabbitMQ ve Celery aras\u0131nda TLS\/SSL kullanarak nas\u0131l g\u00fcvenli bir ba\u011flant\u0131 kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz, b\u00f6ylece verilerinizin gizlili\u011fini ve b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flayabileceksiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/rabbitmq-ve-celery-tls-ssl-ile-nasil-guvenli-hale-getirilir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"RabbitMQ ve Celery TLS\/SSL ile Nas\u0131l G\u00fcvenli Hale Getirilir?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=34431"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34431\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}