TLS (Transport Layer Security) বা SSL (Secure Sockets Layer) হল একটি নিরাপত্তা প্রোটোকল যা নেটওয়ার্কের মাধ্যমে ডেটা ট্রান্সমিশনের সময় এনক্রিপশন নিশ্চিত করে। Hazelcast-এর মতো ডিস্ট্রিবিউটেড সিস্টেমে ডেটার সুরক্ষা নিশ্চিত করতে TLS/SSL এনক্রিপশন অত্যন্ত গুরুত্বপূর্ণ। এই প্রোটোকলটি Hazelcast ক্লাস্টারের মধ্যে যোগাযোগের সময় ডেটা এনক্রিপ্ট করতে ব্যবহৃত হয় এবং এটি ডেটা ইন্টারসেপশন এবং ম্যান ইন দ্য মিডল (MITM) আক্রমণ থেকে সিস্টেমকে সুরক্ষিত রাখে।
Hazelcast এ TLS/SSL এনক্রিপশন কনফিগারেশন করতে, আপনাকে কিছু কনফিগারেশন সেটিংস এবং সার্টিফিকেট প্রস্তুত করতে হবে।
Hazelcast ক্লাস্টারে TLS/SSL এনক্রিপশন ব্যবহারের জন্য প্রথমে SSL সার্টিফিকেট প্রয়োজন। সাধারণত, আপনি একটি Self-Signed Certificate তৈরি করতে পারেন বা একটি Certificate Authority (CA) থেকে সার্টিফিকেট পেতে পারেন। নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে একটি self-signed সার্টিফিকেট তৈরি করা যেতে পারে।
openssl req -newkey rsa:2048 -nodes -keyout hazelcast.key -x509 -days 365 -out hazelcast.crt
এই কমান্ডটি একটি নতুন private key (hazelcast.key
) এবং public certificate (hazelcast.crt
) তৈরি করবে।
Hazelcast ক্লাস্টারে TLS/SSL এনক্রিপশন সক্ষম করার জন্য আপনাকে hazelcast.xml কনফিগারেশন ফাইলে কিছু সেটিংস করতে হবে।
<hazelcast>
<network>
<ssl enabled="true">
<factory-class-name>com.hazelcast.nio.ssl.BasicSSLContextFactory</factory-class-name>
<ssl-config>
<keystore enabled="true"
path="/path/to/keystore.jks"
password="yourpassword"
type="JKS"/>
<truststore enabled="true"
path="/path/to/truststore.jks"
password="yourpassword"
type="JKS"/>
</ssl-config>
</ssl>
</network>
</hazelcast>
এখানে:
keytool -genkey -keyalg RSA -alias mykey -keystore keystore.jks -storepass yourpassword -validity 365 -keysize 2048
এই কমান্ডটি keystore.jks ফাইল তৈরি করবে যা সার্ভারের private key এবং public certificate ধারণ করবে।
keytool -import -alias mytrust -file server.crt -keystore truststore.jks -storepass yourpassword
এই কমান্ডটি truststore.jks তৈরি করবে, যেখানে server.crt সার্টিফিকেট অন্তর্ভুক্ত হবে, যা ক্লায়েন্টের ট্রাস্টেড সার্টিফিকেট।
Hazelcast ক্লাস্টারের মধ্যে SSL/TLS এনক্রিপশন সক্রিয় করতে হলে, ক্লাস্টার এবং ক্লায়েন্ট উভয়ের কনফিগারেশনে SSL সক্রিয় করতে হবে।
Hazelcast ক্লাস্টারের মধ্যে যোগাযোগের জন্য সার্ভারের SSL সক্রিয় করতে নিম্নলিখিত কনফিগারেশন ব্যবহার করুন:
Config config = new Config();
NetworkConfig networkConfig = config.getNetworkConfig();
networkConfig.setSSLConfig(new SSLConfig()
.setEnabled(true)
.setFactoryClassName("com.hazelcast.nio.ssl.BasicSSLContextFactory")
.setKeyStoreFileName("/path/to/keystore.jks")
.setKeyStorePassword("yourpassword")
.setTrustStoreFileName("/path/to/truststore.jks")
.setTrustStorePassword("yourpassword"));
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
Hazelcast ক্লায়েন্টের জন্য SSL কনফিগারেশন:
ClientConfig clientConfig = new ClientConfig();
clientConfig.getNetworkConfig().setSSLConfig(new SSLConfig()
.setEnabled(true)
.setFactoryClassName("com.hazelcast.nio.ssl.BasicSSLContextFactory")
.setKeyStoreFileName("/path/to/keystore.jks")
.setKeyStorePassword("yourpassword")
.setTrustStoreFileName("/path/to/truststore.jks")
.setTrustStorePassword("yourpassword"));
HazelcastClient.newHazelcastClient(clientConfig);
Hazelcast Management Center-এ TLS/SSL এনক্রিপশন সক্রিয় করার জন্য, আপনাকে management-center.xml কনফিগারেশন ফাইলে SSL সক্রিয় করতে হবে।
<management-center>
<network>
<ssl enabled="true">
<keystore enabled="true" path="/path/to/keystore.jks" password="yourpassword" type="JKS"/>
<truststore enabled="true" path="/path/to/truststore.jks" password="yourpassword" type="JKS"/>
</ssl>
</network>
</management-center>
SSL এনক্রিপশন ব্যবহারের ফলে সিস্টেমের পারফরম্যান্সে কিছুটা প্রভাব পড়তে পারে, কারণ:
তবে, সিস্টেমের নিরাপত্তা নিশ্চিত করার জন্য এই প্রভাবটি সহ্য করা হয়। SSL/TLS এনক্রিপশন ব্যবহার করার সময় পারফরম্যান্স অপটিমাইজেশনের জন্য, সিস্টেমের হার্ডওয়্যার এবং নেটওয়ার্ক ইन्फ্রাস্ট্রাকচার যথাযথভাবে কনফিগার করা উচিত।
Hazelcast-এ TLS/SSL এনক্রিপশন সুরক্ষা নিশ্চিত করার জন্য গুরুত্বপূর্ণ একটি ফিচার। এই কনফিগারেশনের মাধ্যমে ডেটা ট্রান্সফার এনক্রিপ্ট করা হয়, যা ডেটা নিরাপত্তা ও ইন্টারসেপশন প্রতিরোধ করে। উপরের কনফিগারেশন পদক্ষেপগুলি অনুসরণ করে আপনি Hazelcast ক্লাস্টার এবং ক্লায়েন্টের মধ্যে SSL সক্রিয় করতে পারেন এবং সিস্টেমের নিরাপত্তা আরও শক্তিশালী করতে পারেন।
common.read_more