{"id":39419,"date":"2026-02-21T05:41:20","date_gmt":"2026-02-21T02:41:20","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=39419"},"modified":"2026-02-21T05:41:20","modified_gmt":"2026-02-21T02:41:20","slug":"giris-ve-on-kosullar","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/","title":{"rendered":"Giri\u015f ve \u00d6n Ko\u015fullar"},"content":{"rendered":"<p><body><\/p>\n<h2>Giri\u015f ve \u00d6n Ko\u015fullar<\/h2>\n<p>Veritaban\u0131 sunucular\u0131, hassas verileri depolad\u0131klar\u0131 ve i\u015fledikleri i\u00e7in siber g\u00fcvenlik tehditlerine kar\u015f\u0131 en kritik hedeflerden biridir. MySQL gibi veritaban\u0131 sistemleri ile uygulamalar veya di\u011fer hizmetler aras\u0131ndaki ileti\u015fimin \u015fifrelenmesi, yetkisiz eri\u015fimi ve veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 \u00f6nlemek i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Bu rehberde, Ubuntu 18.04 \u00fczerinde \u00e7al\u0131\u015fan bir MySQL sunucusu i\u00e7in SSL\/TLS (Secure Sockets Layer\/Transport Layer Security) \u015fifrelemesinin nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<p>SSL\/TLS, istemci ile sunucu aras\u0131ndaki t\u00fcm veri trafi\u011fini \u015fifreleyerek, Man-in-the-Middle (Ortadaki Adam) sald\u0131r\u0131lar\u0131na, pasif dinlemeye ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fcn bozulmas\u0131na kar\u015f\u0131 koruma sa\u011flar. MySQL i\u00e7in SSL\/TLS&#8217;i yap\u0131land\u0131rmak, hem sunucu taraf\u0131nda sertifikalar\u0131n olu\u015fturulmas\u0131n\u0131 ve yap\u0131land\u0131r\u0131lmas\u0131n\u0131 hem de istemci taraf\u0131nda bu sertifikalar\u0131 kullanarak g\u00fcvenli ba\u011flant\u0131 kurulmas\u0131n\u0131 gerektirir.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<ul>\n<li>Ubuntu 18.04 i\u015fletim sistemi kurulu bir sunucu.<\/li>\n<li>MySQL sunucusu kurulu ve \u00e7al\u0131\u015f\u0131r durumda (Bu rehber MySQL 5.7 veya 8.x s\u00fcr\u00fcmleri i\u00e7in ge\u00e7erlidir).<\/li>\n<li><code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 veya <code>root<\/code> eri\u015fimi.<\/li>\n<li>Temel Linux komut sat\u0131r\u0131 bilgisi.<\/li>\n<li>OpenSSL kurulu (genellikle Ubuntu&#8217;da varsay\u0131lan olarak bulunur).<\/li>\n<\/ul>\n<h2>SSL\/TLS Sertifikalar\u0131n\u0131 Olu\u015fturma<\/h2>\n<p>MySQL i\u00e7in SSL\/TLS&#8217;i etkinle\u015ftirmek i\u00e7in bir Sertifika Yetkilisi (CA), sunucu sertifikas\u0131 ve anahtar\u0131 ile iste\u011fe ba\u011fl\u0131 olarak istemci sertifikas\u0131 ve anahtar\u0131 olu\u015fturmam\u0131z gerekir. Bu sertifikalar, ileti\u015fimin g\u00fcvenli\u011fini sa\u011flamak i\u00e7in kullan\u0131lacakt\u0131r. T\u00fcm sertifikalar\u0131 ayn\u0131 sunucu \u00fczerinde olu\u015fturaca\u011f\u0131z, ancak ger\u00e7ek d\u00fcnya senaryolar\u0131nda CA genellikle ayr\u0131, g\u00fcvenli bir ortamda tutulur.<\/p>\n<h3>Sertifika Deposu Olu\u015fturma<\/h3>\n<p>\u00d6ncelikle, sertifikalar\u0131m\u0131z\u0131 depolamak i\u00e7in bir dizin olu\u015ftural\u0131m ve yetkisiz eri\u015fimi \u00f6nlemek i\u00e7in izinlerini ayarlayal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir \/etc\/mysql\/ssl\nsudo chmod 700 \/etc\/mysql\/ssl\ncd \/etc\/mysql\/ssl<\/code><\/pre>\n<h3>Sertifika Yetkilisi (CA) Olu\u015fturma<\/h3>\n<p>CA, hem sunucu hem de istemci sertifikalar\u0131n\u0131 imzalayacak olan ana sertifikad\u0131r. Kendi CA&#8217;m\u0131z\u0131 olu\u015fturaca\u011f\u0131z:<\/p>\n<pre><code class=\"language-bash\"># CA anahtar\u0131n\u0131 olu\u015fturma\nsudo openssl genrsa 2048 > ca-key.pem\n\n<h2>CA sertifikas\u0131n\u0131 olu\u015fturma<\/h2>\nsudo openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -sha256 -out ca.pem -subj \"\/CN=MyMySQLCA\"<\/code><\/pre>\n<p><code>-subj \"\/CN=MyMySQLCA\"<\/code> parametresi, etkile\u015fimli sorular\u0131 atlayarak Ortak Ad\u0131 (Common Name) do\u011frudan ayarlar. <code>-days 3650<\/code>, sertifikan\u0131n 10 y\u0131l ge\u00e7erli olaca\u011f\u0131n\u0131 belirtir.<\/p>\n<h3>MySQL Sunucu Sertifikas\u0131 ve Anahtar\u0131 Olu\u015fturma<\/h3>\n<p>\u015eimdi MySQL sunucusu i\u00e7in bir anahtar ve sertifika iste\u011fi (CSR) olu\u015fturup, bunu az \u00f6nce olu\u015fturdu\u011fumuz CA ile imzalayaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-bash\"># Sunucu anahtar\u0131n\u0131 olu\u015fturma\nsudo openssl genrsa 2048 > server-key.pem\n\n<h2>Sunucu sertifika iste\u011fini (CSR) olu\u015fturma<\/h2>\n<h2>CN, sunucunun ana bilgisayar ad\u0131 (hostname) veya IP adresi olmal\u0131d\u0131r.<\/h2>\n<h2>E\u011fer birden fazla ana bilgisayar ad\u0131\/IP i\u00e7in ge\u00e7erli olmas\u0131n\u0131 istiyorsan\u0131z,<\/h2>\n<h2>openssl.cnf dosyas\u0131na subjectAltName (SAN) eklemeniz gerekebilir.<\/h2>\nsudo openssl req -new -key server-key.pem -nodes -sha256 -out server-req.csr -subj \"\/CN=your_mysql_server_hostname_or_ip\"\n\n<h2>CSR'yi CA ile imzalayarak sunucu sertifikas\u0131n\u0131 olu\u015fturma<\/h2>\nsudo openssl x509 -req -in server-req.csr -days 3650 -sha256 -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem<\/code><\/pre>\n<p><code>your_mysql_server_hostname_or_ip<\/code> yerine MySQL sunucunuzun DNS ad\u0131n\u0131 veya IP adresini yazmay\u0131 unutmay\u0131n. \u0130stemciler bu ad\u0131 kullanarak sunucunun kimli\u011fini do\u011frulayacakt\u0131r.<\/p>\n<h3>MySQL \u0130stemci Sertifikas\u0131 ve Anahtar\u0131 Olu\u015fturma (\u0130ste\u011fe Ba\u011fl\u0131)<\/h3>\n<p>Kar\u015f\u0131l\u0131kl\u0131 kimlik do\u011frulama (mutual authentication) i\u00e7in istemcinin de bir sertifika sunmas\u0131 gerekebilir. Bu, ek bir g\u00fcvenlik katman\u0131 sa\u011flar. Bu ad\u0131m iste\u011fe ba\u011fl\u0131d\u0131r, sadece sunucunun kimli\u011fini do\u011frulamak yeterli ise atlanabilir.<\/p>\n<pre><code class=\"language-bash\"># \u0130stemci anahtar\u0131n\u0131 olu\u015fturma\nsudo openssl genrsa 2048 > client-key.pem\n\n<h2>\u0130stemci sertifika iste\u011fini (CSR) olu\u015fturma<\/h2>\n<h2>CN, istemcinin kimli\u011fini tan\u0131mlayan herhangi bir de\u011fer olabilir.<\/h2>\nsudo openssl req -new -key client-key.pem -nodes -sha256 -out client-req.csr -subj \"\/CN=mysqlclient\"\n\n<h2>CSR'yi CA ile imzalayarak istemci sertifikas\u0131n\u0131 olu\u015fturma<\/h2>\nsudo openssl x509 -req -in client-req.csr -days 3650 -sha256 -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem<\/code><\/pre>\n<h3>Sertifika \u0130zinlerini Ayarlama<\/h3>\n<p>Olu\u015fturulan anahtarlar\u0131n ve sertifikalar\u0131n yaln\u0131zca MySQL kullan\u0131c\u0131s\u0131 taraf\u0131ndan okunabilir oldu\u011fundan emin olmal\u0131y\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo chmod 400 ca-key.pem server-key.pem client-key.pem\nsudo chmod 444 ca.pem server-cert.pem client-cert.pem<\/code><\/pre>\n<p>Bu komutlar, \u00f6zel anahtarlar\u0131n (<code>*.pem<\/code> ile bitenler) yaln\u0131zca sahibine okuma izni verirken, genel sertifikalar\u0131n herkes taraf\u0131ndan okunabilir olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>MySQL Sunucusunu SSL\/TLS \u0130\u00e7in Yap\u0131land\u0131rma<\/h2>\n<p>Sertifikalar olu\u015fturulduktan sonra, MySQL sunucusunu bu sertifikalar\u0131 kullanacak \u015fekilde yap\u0131land\u0131rmam\u0131z gerekir. MySQL yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code> veya <code>\/etc\/mysql\/my.cnf<\/code> konumundad\u0131r. Ubuntu 18.04&#8217;te <code>\/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code> dosyas\u0131n\u0131 d\u00fczenleyece\u011fiz.<\/p>\n<h3>MySQL Yap\u0131land\u0131rma Dosyas\u0131n\u0131 D\u00fczenleme<\/h3>\n<p>Tercih etti\u011finiz metin d\u00fczenleyici ile <code>mysqld.cnf<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code><\/pre>\n<p><code>[mysqld]<\/code> b\u00f6l\u00fcm\u00fcn\u00fcn alt\u0131na a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin:<\/p>\n<pre><code class=\"language-ini\">[mysqld]\n...\nssl-ca=\/etc\/mysql\/ssl\/ca.pem\nssl-cert=\/etc\/mysql\/ssl\/server-cert.pem\nssl-key=\/etc\/mysql\/ssl\/server-key.pem\n\n<h2>\u0130ste\u011fe ba\u011fl\u0131: Sadece SSL\/TLS ba\u011flant\u0131lar\u0131na izin vermek i\u00e7in<\/h2>\n<h2>require_secure_transport=ON<\/h2>\n<h2>bind-address = 127.0.0.1 (E\u011fer sadece yerel ba\u011flant\u0131lara izin veriyorsan\u0131z)<\/h2>\n<h2>skip-networking (E\u011fer sadece Unix soket ba\u011flant\u0131lar\u0131na izin veriyorsan\u0131z)<\/code><\/pre>\n<\/h2>\n<p><code>require_secure_transport=ON<\/code> parametresi, MySQL sunucusunun sadece SSL\/TLS \u015fifrelemeli ba\u011flant\u0131lar\u0131 kabul etmesini sa\u011flar. Bu, g\u00fcvenlik i\u00e7in \u015fiddetle tavsiye edilir. E\u011fer bu sat\u0131r\u0131 eklerseniz, SSL\/TLS kullanmayan hi\u00e7bir istemci ba\u011flanamayacakt\u0131r.<\/p>\n<h3>MySQL Servisini Yeniden Ba\u015flatma<\/h3>\n<p>Yap\u0131land\u0131rma de\u011fi\u015fikliklerinin etkili olmas\u0131 i\u00e7in MySQL servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart mysql<\/code><\/pre>\n<p>Herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in g\u00fcnl\u00fckleri (log) kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status mysql\nsudo journalctl -xe | grep mysql<\/code><\/pre>\n<h3>SSL\/TLS Yap\u0131land\u0131rmas\u0131n\u0131 Do\u011frulama<\/h3>\n<p>MySQL sunucusuna ba\u011flanarak SSL\/TLS&#8217;in d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulayabiliriz. Varsay\u0131lan olarak, yerel ba\u011flant\u0131lar genellikle SSL\/TLS kullanmaz. Bu nedenle, bir uzaktan ba\u011flant\u0131 sim\u00fcle etmek veya <code>require_secure_transport=ON<\/code> ayar\u0131n\u0131 yapt\u0131ysan\u0131z, SSL\/TLS parametreleriyle ba\u011flanmay\u0131 denemelisiniz.<\/p>\n<pre><code class=\"language-bash\">mysql -u root -p --ssl-mode=DISABLED # E\u011fer require_secure_transport=ON ise bu ba\u015far\u0131s\u0131z olur\nmysql -u root -p --ssl-mode=REQUIRED # SSL\/TLS zorunlu oldu\u011funda<\/code><\/pre>\n<p>Ba\u011fland\u0131ktan sonra a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak SSL\/TLS durumunu kontrol edin:<\/p>\n<pre><code class=\"language-sql\">SHOW STATUS LIKE 'Ssl_cipher';\nSHOW VARIABLES LIKE '%ssl%';<\/code><\/pre>\n<p><code>Ssl_cipher<\/code> de\u011fi\u015fkeni bo\u015f de\u011filse (\u00f6rne\u011fin, <code>TLS_AES_256_GCM_SHA384<\/code> gibi bir de\u011fer g\u00f6steriyorsa), SSL\/TLS ba\u015far\u0131yla etkinle\u015ftirilmi\u015f demektir. <code>have_ssl<\/code> de\u011fi\u015fkeninin <code>YES<\/code> oldu\u011funu ve <code>ssl_ca<\/code>, <code>ssl_cert<\/code>, <code>ssl_key<\/code> de\u011fi\u015fkenlerinin do\u011fru dosya yollar\u0131n\u0131 g\u00f6sterdi\u011fini de kontrol edin.<\/p>\n<h2>MySQL \u0130stemcisini SSL\/TLS ile Ba\u011flanacak \u015eekilde Yap\u0131land\u0131rma<\/h2>\n<p>MySQL sunucusu SSL\/TLS i\u00e7in yap\u0131land\u0131r\u0131ld\u0131ktan sonra, istemcilerin de g\u00fcvenli bir \u015fekilde ba\u011flanmas\u0131 gerekir. Bu b\u00f6l\u00fcm, komut sat\u0131r\u0131 istemcisi ve genel uygulama ba\u011flant\u0131lar\u0131 i\u00e7in yap\u0131land\u0131rmay\u0131 kapsar.<\/p>\n<h3>Komut Sat\u0131r\u0131 \u0130stemcisi ile Ba\u011flanma<\/h3>\n<p>\u0130stemci sertifikalar\u0131n\u0131 olu\u015fturduysan\u0131z (kar\u015f\u0131l\u0131kl\u0131 kimlik do\u011frulama), bunlar\u0131 kullanarak ba\u011flanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">mysql -h your_mysql_server_hostname_or_ip -u your_username -p \\\n--ssl-ca=\/path\/to\/ca.pem \\\n--ssl-cert=\/path\/to\/client-cert.pem \\\n--ssl-key=\/path\/to\/client-key.pem<\/code><\/pre>\n<p>Sadece sunucunun kimli\u011fini do\u011frulamak istiyorsan\u0131z (istemci sertifikas\u0131 olmadan):<\/p>\n<pre><code class=\"language-bash\">mysql -h your_mysql_server_hostname_or_ip -u your_username -p \\\n--ssl-ca=\/path\/to\/ca.pem \\\n--ssl-mode=VERIFY_IDENTITY # veya VERIFY_CA<\/code><\/pre>\n<ul>\n<li><code>--ssl-ca<\/code>: CA sertifikas\u0131n\u0131n yolu.<\/li>\n<li><code>--ssl-cert<\/code>: \u0130stemci sertifikas\u0131n\u0131n yolu (iste\u011fe ba\u011fl\u0131).<\/li>\n<li><code>--ssl-key<\/code>: \u0130stemci anahtar\u0131n\u0131n yolu (iste\u011fe ba\u011fl\u0131).<\/li>\n<li><code>--ssl-mode<\/code>: Ba\u011flant\u0131n\u0131n SSL\/TLS davran\u0131\u015f\u0131n\u0131 belirler:\n<ul>\n<li><code>DISABLED<\/code>: SSL\/TLS kullanma (e\u011fer sunucu zorlam\u0131yorsa).<\/li>\n<li><code>PREFERRED<\/code>: M\u00fcmk\u00fcnse SSL\/TLS kullan, yoksa kullanma.<\/li>\n<li><code>REQUIRED<\/code>: SSL\/TLS kullan, yoksa ba\u015far\u0131s\u0131z ol. Sunucu sertifikas\u0131n\u0131 do\u011frulama.<\/li>\n<li><code>VERIFY_CA<\/code>: SSL\/TLS kullan ve sunucu sertifikas\u0131n\u0131n CA taraf\u0131ndan imzaland\u0131\u011f\u0131n\u0131 do\u011frula.<\/li>\n<li><code>VERIFY_IDENTITY<\/code>: SSL\/TLS kullan, sunucu sertifikas\u0131n\u0131n CA taraf\u0131ndan imzaland\u0131\u011f\u0131n\u0131 do\u011frula VE Common Name&#8217;in (CN) ana bilgisayar ad\u0131 ile e\u015fle\u015fti\u011fini do\u011frula. Bu en g\u00fcvenli moddur.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Ba\u011fland\u0131ktan sonra <code>\\s<\/code> komutu ile ba\u011flant\u0131 durumunu kontrol edebilirsiniz. <code>SSL: Cipher in use is ...<\/code> gibi bir sat\u0131r g\u00f6rmeniz gerekir.<\/p>\n<h3>Uygulamalar i\u00e7in SSL\/TLS Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>\u00c7o\u011fu programlama dili ve veritaban\u0131 s\u00fcr\u00fcc\u00fcs\u00fc, MySQL&#8217;e SSL\/TLS ile ba\u011flanmay\u0131 destekler. Genellikle ba\u011flant\u0131 dizesinde veya yap\u0131land\u0131rma nesnesinde <code>sslmode<\/code>, <code>ssl_ca<\/code>, <code>ssl_cert<\/code>, <code>ssl_key<\/code> gibi parametreler belirtilir.<\/p>\n<h4>\u00d6rnek: PHP PDO ile SSL\/TLS<\/h4>\n<pre><code class=\"language-php\"><?php\n$host = 'your_mysql_server_hostname_or_ip';\n$db = 'your_database_name';\n$user = 'your_username';\n$pass = 'your_password';\n$charset = 'utf8mb4';\n\n$dsn = \"mysql:host=$host;dbname=$db;charset=$charset\";\n$options = [\n    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,\n    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,\n    PDO::ATTR_EMULATE_PREPARES   => false,\n    PDO::MYSQL_ATTR_SSL_CA       => '\/path\/to\/client\/ca.pem',\n    \/\/ \u0130ste\u011fe ba\u011fl\u0131: Kar\u015f\u0131l\u0131kl\u0131 kimlik do\u011frulama i\u00e7in\n    PDO::MYSQL_ATTR_SSL_CERT     => '\/path\/to\/client\/client-cert.pem',\n    PDO::MYSQL_ATTR_SSL_KEY      => '\/path\/to\/client\/client-key.pem',\n    \/\/ PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true \/\/ MySQL 8+ i\u00e7in sunucu sertifikas\u0131n\u0131 do\u011frula\n];\n\ntry {\n    $pdo = new PDO($dsn, $user, $pass, $options);\n    echo \"Veritaban\u0131na SSL\/TLS ile ba\u015far\u0131yla ba\u011fland\u0131!\\n\";\n} catch (\\PDOException $e) {\n    throw new \\PDOException($e->getMessage(), (int)$e->getCode());\n}\n?><\/code><\/pre>\n<h4>\u00d6rnek: Python MySQL Connector ile SSL\/TLS<\/h4>\n<pre><code class=\"language-python\">import mysql.connector\n\ntry:\n    conn = mysql.connector.connect(\n        host=\"your_mysql_server_hostname_or_ip\",\n        user=\"your_username\",\n        password=\"your_password\",\n        database=\"your_database_name\",\n        ssl_ca=\"\/path\/to\/client\/ca.pem\",\n        # \u0130ste\u011fe ba\u011fl\u0131: Kar\u015f\u0131l\u0131kl\u0131 kimlik do\u011frulama i\u00e7in\n        ssl_cert=\"\/path\/to\/client\/client-cert.pem\",\n        ssl_key=\"\/path\/to\/client\/client-key.pem\",\n        ssl_verify_cert=True # Sunucu sertifikas\u0131n\u0131 do\u011frula\n    )\n    print(\"Veritaban\u0131na SSL\/TLS ile ba\u015far\u0131yla ba\u011fland\u0131!\")\n    conn.close()\nexcept mysql.connector.Error as err:\n    print(f\"Hata: {err}\")<\/code><\/pre>\n<p>Uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 sunucuya CA ve istemci sertifikalar\u0131n\u0131 (e\u011fer kullan\u0131l\u0131yorsa) kopyalamay\u0131 ve do\u011fru yollar\u0131 belirtmeyi unutmay\u0131n.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu rehberde, Ubuntu 18.04 \u00fczerinde bir MySQL sunucusu i\u00e7in SSL\/TLS \u015fifrelemesini nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz. Kendi Sertifika Yetkilinizi olu\u015fturarak, sunucu ve istemci sertifikalar\u0131n\u0131 imzalayarak, MySQL sunucusunu ve istemcilerini bu sertifikalar\u0131 kullanacak \u015fekilde yap\u0131land\u0131rd\u0131k. Bu ad\u0131mlar, veritaban\u0131 ileti\u015fiminizin g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rarak hassas verilerinizin korunmas\u0131na yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p>SSL\/TLS kullan\u0131m\u0131, \u00f6zellikle veritaban\u0131 sunucusu ile istemcilerin farkl\u0131 makinelerde bulundu\u011fu veya internet \u00fczerinden ileti\u015fim kurdu\u011fu durumlarda kritik \u00f6neme sahiptir. G\u00fcvenli bir veritaban\u0131 ortam\u0131 olu\u015fturmak i\u00e7in bu yap\u0131land\u0131rmay\u0131 uygulamak, genel g\u00fcvenlik duru\u015funuzu g\u00fc\u00e7lendirecektir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>Q: MySQL sunucum yeniden ba\u015flat\u0131lm\u0131yor veya SSL\/TLS etkinle\u015fmiyor, ne yapmal\u0131y\u0131m?<\/h4>\n<p><strong>A:<\/strong> \u00d6ncelikle MySQL hata g\u00fcnl\u00fcklerini kontrol edin (<code>sudo journalctl -xe | grep mysql<\/code> veya <code>\/var\/log\/mysql\/error.log<\/code>). En yayg\u0131n sorunlar \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Yanl\u0131\u015f dosya yollar\u0131:<\/strong> <code>mysqld.cnf<\/code> dosyas\u0131ndaki <code>ssl-ca<\/code>, <code>ssl-cert<\/code>, <code>ssl-key<\/code> yollar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun.<\/li>\n<li><strong>Dosya izinleri:<\/strong> Anahtar dosyalar\u0131n\u0131n (<code>*-key.pem<\/code>) sadece MySQL kullan\u0131c\u0131s\u0131 taraf\u0131ndan okunabilir oldu\u011fundan emin olun (<code>chmod 400<\/code>).<\/li>\n<li><strong>Sertifika hatalar\u0131:<\/strong> Sertifikalar\u0131n do\u011fru formatta (PEM) oldu\u011fundan ve ge\u00e7erlilik s\u00fcrelerinin dolmad\u0131\u011f\u0131ndan emin olun.<\/li>\n<li><strong>Yanl\u0131\u015f Common Name (CN):<\/strong> Sunucu sertifikas\u0131n\u0131n CN&#8217;sinin istemcinin ba\u011flanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131 ana bilgisayar ad\u0131 veya IP ile e\u015fle\u015fti\u011finden emin olun, \u00f6zellikle <code>VERIFY_IDENTITY<\/code> kullan\u0131l\u0131yorsa.<\/li>\n<\/ul>\n<h4>Q: Mevcut bir SSL\/TLS sertifikas\u0131n\u0131 (\u00f6rne\u011fin Let&#8217;s Encrypt&#8217;ten) kullanabilir miyim?<\/h4>\n<p><strong>A:<\/strong> Evet, kullanabilirsiniz. Let&#8217;s Encrypt gibi bir sa\u011flay\u0131c\u0131dan ald\u0131\u011f\u0131n\u0131z sertifikalar genellikle zaten CA zinciri ile birlikte gelir ve PEM format\u0131ndad\u0131r. Bu durumda, kendi CA&#8217;n\u0131z\u0131 olu\u015fturman\u0131za gerek kalmaz. <code>ssl-ca<\/code>, <code>ssl-cert<\/code> ve <code>ssl-key<\/code> parametrelerini sa\u011flay\u0131c\u0131n\u0131zdan ald\u0131\u011f\u0131n\u0131z ilgili dosyalara (genellikle <code>fullchain.pem<\/code>, <code>cert.pem<\/code> ve <code>privkey.pem<\/code>) i\u015faret etmeniz yeterlidir.<\/p>\n<h4>Q: SSL\/TLS kullanmak MySQL performans\u0131n\u0131 etkiler mi?<\/h4>\n<p><strong>A:<\/strong> Modern CPU&#8217;lar ve SSL\/TLS uygulamalar\u0131 ile \u015fifreleme\/\u015fifre \u00e7\u00f6zme i\u015fleminin performansa etkisi genellikle \u00e7ok d\u00fc\u015f\u00fckt\u00fcr ve \u00e7o\u011fu uygulama i\u00e7in fark edilmez. \u00d6zellikle y\u00fcksek trafikli veritabanlar\u0131nda \u00e7ok k\u00fc\u00e7\u00fck bir ek y\u00fck olabilir, ancak sa\u011flad\u0131\u011f\u0131 g\u00fcvenlik faydalar\u0131 bu k\u00fc\u00e7\u00fck maliyetten \u00e7ok daha a\u011f\u0131r basar.<\/p>\n<h4>Q: Neden hem sunucu hem de istemci sertifikalar\u0131 olu\u015fturduk?<\/h4>\n<p><strong>A:<\/strong> Sunucu sertifikas\u0131, istemcinin sunucunun kimli\u011fini do\u011frulamas\u0131n\u0131 sa\u011flar. \u0130stemci sertifikas\u0131 ise sunucunun istemcinin kimli\u011fini do\u011frulamas\u0131n\u0131 sa\u011flar. Bu, &#8220;kar\u015f\u0131l\u0131kl\u0131 kimlik do\u011frulama&#8221; (mutual authentication) olarak bilinir ve ek bir g\u00fcvenlik katman\u0131 sunar, \u00e7\u00fcnk\u00fc sadece do\u011fru sertifikaya sahip istemcilerin ba\u011flanmas\u0131na izin verir. E\u011fer sadece sunucunun kimli\u011fini do\u011frulamak yeterliyse, istemci sertifikalar\u0131 olu\u015fturmak ve yap\u0131land\u0131rmak zorunlu de\u011fildir.<\/p>\n<h4>Q: Sertifikalar\u0131n ge\u00e7erlilik s\u00fcreleri doldu\u011funda ne olur?<\/h4>\n<p><strong>A:<\/strong> Sertifikalar\u0131n ge\u00e7erlilik s\u00fcreleri doldu\u011funda, MySQL ba\u011flant\u0131lar\u0131 ba\u015far\u0131s\u0131z olacakt\u0131r, \u00e7\u00fcnk\u00fc istemciler sunucu sertifikas\u0131n\u0131 do\u011frulayamayacak veya sunucu istemci sertifikas\u0131n\u0131 do\u011frulayamayacakt\u0131r. Bu nedenle, sertifikalar\u0131n ge\u00e7erlilik s\u00fcrelerini takip etmek ve s\u00fcreleri dolmadan yenilemek \u00f6nemlidir. Kendi imzalad\u0131\u011f\u0131n\u0131z sertifikalar i\u00e7in bu, yeni sertifikalar olu\u015fturup MySQL yap\u0131land\u0131rmas\u0131n\u0131 g\u00fcncellemek anlam\u0131na gelir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Giri\u015f ve \u00d6n Ko\u015fullar\nVeritaban\u0131 sunucular\u0131, hassas verileri depolad\u0131klar\u0131 ve i\u015fledikleri i\u00e7in siber g\u00fcvenlik tehditlerine kar\u015f\u0131 en krit","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":[1],"tags":[],"class_list":{"0":"post-39419","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>Giri\u015f ve \u00d6n Ko\u015fullar - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/giris-ve-on-kosullar\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Giri\u015f ve \u00d6n Ko\u015fullar\" \/>\n<meta property=\"og:description\" content=\"Giri\u015f ve \u00d6n Ko\u015fullar Veritaban\u0131 sunucular\u0131, hassas verileri depolad\u0131klar\u0131 ve i\u015fledikleri i\u00e7in siber g\u00fcvenlik tehditlerine kar\u015f\u0131 en krit\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-21T02:41:20+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=\"11 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Giri\u015f ve \u00d6n Ko\u015fullar\",\"datePublished\":\"2026-02-21T02:41:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/\"},\"wordCount\":1619,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/\",\"name\":\"Giri\u015f ve \u00d6n Ko\u015fullar - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-21T02:41:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Giri\u015f ve \u00d6n Ko\u015fullar\"}]},{\"@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":"Giri\u015f ve \u00d6n Ko\u015fullar - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/giris-ve-on-kosullar\/","og_locale":"tr_TR","og_type":"article","og_title":"Giri\u015f ve \u00d6n Ko\u015fullar","og_description":"Giri\u015f ve \u00d6n Ko\u015fullar Veritaban\u0131 sunucular\u0131, hassas verileri depolad\u0131klar\u0131 ve i\u015fledikleri i\u00e7in siber g\u00fcvenlik tehditlerine kar\u015f\u0131 en krit","og_url":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-21T02:41:20+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"11 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Giri\u015f ve \u00d6n Ko\u015fullar","datePublished":"2026-02-21T02:41:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/"},"wordCount":1619,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/","url":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/","name":"Giri\u015f ve \u00d6n Ko\u015fullar - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-21T02:41:20+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/giris-ve-on-kosullar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Giri\u015f ve \u00d6n Ko\u015fullar"}]},{"@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\/39419","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=39419"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39419\/revisions"}],"predecessor-version":[{"id":39420,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39419\/revisions\/39420"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}