bg-tutorials

Google App Engine-এ কীভাবে SSL সার্টিফিকেট ইনস্টল করবেন

এই গাইডে আপনাকে দেখানো হবে কীভাবে Google App Engine-এ একটি SSL সার্টিফিকেট ইনস্টল করবেন, আধুনিক পদ্ধতি (একটি ফ্রি Google-পরিচালিত সার্টিফিকেট যা App Engine স্বয়ংক্রিয়ভাবে কোনো কাস্টম ডোমেইনের জন্য প্রভিশন এবং রিনিউ করে) এবং লিগ্যাসি পদ্ধতি (আপনার নিজের থার্ড-পার্টি সার্টিফিকেট আপলোড করা, যখন আপনার নির্দিষ্ট কোনো CA, EV/OV সার্টিফিকেট বা ওয়াইল্ডকার্ড প্রয়োজন হয়) উভয়ই। App Engine একটি সম্পূর্ণ ম্যানেজড PaaS, তাই এই সবকিছুই Google Cloud Console-এ বা gcloud CLI-এর মাধ্যমে ঘটে; আপনাকে কখনো সার্ভারে লগইন করতে হয় না।

পূর্বশর্ত

একটি সার্টিফিকেট ইনস্টল করার আগে, নিশ্চিত করুন যে নিচের বিষয়গুলো প্রস্তুত আছে:

  • একটি Google Cloud প্রজেক্টে ডিপ্লয়কৃত App Engine অ্যাপ্লিকেশন (স্ট্যান্ডার্ড বা ফ্লেক্সিবল এনভায়রনমেন্ট)।
  • আপনার নিয়ন্ত্রণে থাকা একটি রেজিস্টার্ড ডোমেইন, যার DNS রেকর্ডে অ্যাক্সেস রয়েছে।
  • Google Search Console বা Webmaster Central-এর মাধ্যমে আপনার Google অ্যাকাউন্টের জন্য যাচাইকৃত ডোমেইন (App Engine সেখান থেকে যাচাইকৃত মালিকানা পড়ে)।
  • যদি আপনি কমান্ড লাইনের বদলে Console পছন্দ করেন না, তাহলে ইনস্টল ও প্রমাণিত করা gcloud CLI।
  • প্রজেক্টে Owner, Editor, বা App Engine Admin রোল।

App Engine-এ কাস্টম ডোমেইন এবং SSL এই ক্রমে কাজ করে: ডোমেইন যাচাই করুন, এটিকে আপনার অ্যাপ্লিকেশনের সাথে ম্যাপ করুন, DNS-কে App Engine-এর দিকে নির্দেশ করুন, তারপর হয় Google-কে একটি ম্যানেজড সার্টিফিকেট প্রভিশন করতে দিন অথবা আপনার নিজের আপলোড করুন।

অপশন ১: ফ্রি Google-পরিচালিত SSL (প্রস্তাবিত)

Google-পরিচালিত সার্টিফিকেটগুলো ফ্রি, Let’s Encrypt-এর মাধ্যমে স্বয়ংক্রিয়ভাবে প্রভিশন করা হয়, এবং ডোমেইন ম্যাপ করা থাকা পর্যন্ত এগুলো স্বয়ংক্রিয়ভাবে রিনিউ হয়। App Engine-এ যেকোনো নতুন কাস্টম ডোমেইনের জন্য এটিই ডিফল্ট এবং বেশিরভাগ সাইটের জন্য সঠিক পছন্দ। ম্যানেজড সার্টিফিকেট ওয়াইল্ডকার্ড সমর্থন করে না: প্রতিটি হোস্ট নেম (উদাহরণস্বরূপ example.com এবং www.example.com) তার নিজস্ব সার্টিফিকেট দ্বারা কভার করা হয়।

পদক্ষেপ ১: আপনার ডোমেইনের মালিকানা যাচাই করুন

আপনার ব্রাউজারে, যে Google অ্যাকাউন্ট Cloud প্রজেক্টের মালিক সেই একই অ্যাকাউন্ট দিয়ে Google Search Console-এ সাইন ইন করুন, আপনার ডোমেইন একটি প্রপার্টি হিসেবে যুক্त করুন, এবং যাচাইকরণ পদ্ধতিগুলোর একটি সম্পূর্ণ করুন (DNS TXT রেকর্ড সবচেয়ে বিশ্বাসযোগ্য)। App Engine আপনাকে অ-যাচাইকৃত কোনো ডোমেইন ম্যাপ করতে দেবে না।

পদক্ষেপ ২: Console-এ কাস্টম ডোমেইন ম্যাপ করুন

  • Google Cloud Console খুলুন এবং আপনার প্রজেক্ট নির্বাচন করুন।
  • Navigation menu থেকে App Engine > Settings নির্বাচন করুন।
  • Custom Domains ট্যাব খুলুন এবং Add a custom domain-এ ক্লিক করুন।
  • ড্রপডাউন থেকে যাচাইকৃত ডোমেইন বেছে নিন, তারপর আপনি যে সাবডোমেইনগুলো পরিবেশন করতে চান তা লিখুন (সাধারণত রুট example.com এবং www.example.com)।
  • Save mappings-এ ক্লিক করুন, তারপর আপনার DNS প্রোভাইডারে প্রস্তাবিত A, AAAA, এবং CNAME রেকর্ড যুক্ত করার জন্য স্ক্রিনে দেওয়া নির্দেশাবলী অনুসরণ করুন।

কমান্ড লাইন থেকে একই কাজ করতে, চালান:

gcloud app domain-mappings create www.example.com --project=YOUR_PROJECT_ID
gcloud app domain-mappings create example.com --project=YOUR_PROJECT_ID

পদক্ষেপ ৩: ম্যানেজড সার্টিফিকেটের জন্য অপেক্ষা করুন

DNS প্রোপাগেট হয়ে গেলে, App Engine প্রতিটি ম্যাপ করা হোস্ট নেমের জন্য স্বয়ংক্রিয়ভাবে একটি Let’s Encrypt সার্টিফিকেট অনুরোধ করে। প্রভিশনিং সাধারণত দ্রুত হয়, কিন্তু DNS প্রোপাগেশনে ২৪ ঘণ্টা পর্যন্ত সময় লাগতে পারে। স্ট্যাটাস চেক করুন এই কমান্ডে:

gcloud app domain-mappings list --project=YOUR_PROJECT_ID

সার্টিফিকেট লাইভ হয়ে গেলে প্রতিটি ম্যাপিং একটি SSL স্ট্যাটাস দেখায় MANAGED_CERTIFICATE_STATUS: OK। এটি ইস্যু করার সময় আপনি PROVISIONING বা PENDING_DNS দেখতে পাবেন; DNS রেকর্ড Google-এর IP-তে রিজলভ হয়ে গেলে এটি সাধারণত নিজে থেকেই সমাধান হয়ে যায়।

পদক্ষেপ ৪: ভিজিটরদের জন্য HTTPS বাধ্যতামূলক করুন (স্ট্যান্ডার্ড এনভায়রনমেন্ট)

App Engine স্ট্যান্ডার্ডে, প্রতিটি অনুরোধকে HTTPS-এ রিডাইরেক্ট করতে app.yaml-এর প্রতিটি হ্যান্ডলারে secure: always যুক্ত করুন:

handlers:
- url: /.*
  script: auto
  secure: always
  redirect_http_response_code: 301

gcloud app deploy দিয়ে পরিবর্তনটি ডিপ্লয় করুন। ফ্লেক্সিবল এনভায়রনমেন্টে, HTTP-থেকে-HTTPS রিডাইরেক্ট অ্যাপ্লিকেশন বা লোড-ব্যালান্সার স্তরে পরিচালনা করুন।

অপশন ২: আপনার নিজের থার্ড-পার্টি SSL সার্টিফিকেট আপলোড করুন

এই পথটি বেছে নিন যখন আপনার একটি ওয়াইল্ডকার্ড সার্টিফিকেট, নির্দিষ্ট Certificate Authority থেকে একটি OV বা EV সার্টিফিকেট, বা আপনার ডোমেইনের জন্য ইতিমধ্যে ইস্যু করা একটি সার্টিফিকেট প্রয়োজন হয়। App Engine একটি একক PEM ফাইল গ্রহণ করে যাতে লিফ এবং যেকোনো ইন্টারমিডিয়েট সার্টিফিকেট থাকে, সাথে একটি এনক্রিপ্ট না করা PEM-এনকোডেড RSA প্রাইভেট কী। আপলোড করা PEM ফাইলে সর্বমোট পাঁচটি পর্যন্ত সার্টিফিকেট অনুমোদিত (একটি লিফ প্লাস চারটি পর্যন্ত ইন্টারমিডিয়েট), এবং আপলোড করা সার্টিফিকেট একই Cloud সংস্থার একাধিক প্রজেক্টে পুনরায় ব্যবহার করা যায়।

পদক্ষেপ ১: CSR তৈরি করুন এবং সার্টিফিকেট অর্ডার করুন

যদি আপনি ইতিমধ্যে আপনার CSR তৈরি করে থাকেন এবং আপনার CA থেকে ইস্যু করা সার্টিফিকেট পেয়ে থাকেন, তাহলে পদক্ষেপ ২-এ চলে যান।

একটি CSR (Certificate Signing Request) হলো এনকোডেড টেক্সটের একটি ব্লক যাতে আপনার যোগাযোগ এবং ডোমেইন তথ্য থাকে, যা CA আপনার সার্টিফিকেট যাচাই ও সাইন করতে ব্যবহার করে। এটি তৈরি করার দুটি উপায় রয়েছে:

আপনার অর্ডারের সময় CSR (—–BEGIN CERTIFICATE REQUEST—– এবং —–END CERTIFICATE REQUEST—– মার্কারসহ) CA-তে জমা দিন। মিলিত প্রাইভেট কী একটি সুরক্ষিত স্থানে সংরক্ষণ করুন; ইনস্টলেশনের সময় আপনার এটি প্রয়োজন হবে।

পদক্ষেপ ২: সার্টিফিকেট এবং চেইনকে একটি একক PEM-এ সংযুক্ত করুন

যদি CA আলাদা ফাইল সরবরাহ করে (আপনার সার্ভার সার্টিফিকেট প্লাস এক বা একাধিক ইন্টারমিডিয়েট), সেগুলোকে সঠিক ক্রমে সংযুক্ত করুন (প্রথমে আপনার সার্টিফিকেট, পরে ইন্টারমিডিয়েট)। যে ফোল্ডারে ফাইলগুলো আছে সেখানে একটি টার্মিনাল খুলুন এবং চালান:

cat yourdomain.crt intermediate.crt > concat.crt

Windows PowerShell-এ, সমতুল্য কমান্ড হলো:

Get-Content yourdomain.crt, intermediate.crt | Set-Content concat.crt

ফলাফল হলো সম্পূর্ণ চেইনসহ একটি PEM-এনকোডেড সার্টিফিকেট ফাইল। যদি আপনার ফরম্যাটও রূপান্তর করতে হয় (উদাহরণস্বরূপ .pfx বা .p12 থেকে PEM-এ), আমাদের SSL tools ব্যবহার করুন।

প্রাইভেট কী অবশ্যই এনক্রিপ্ট না করা PEM-এনকোডেড RSA কী হতে হবে (উদাহরণস্বরূপ myserver.key.pem)। যদি আপনার কী পাসওয়ার্ড-সুরক্ষিত হয়, তাহলে পাসফ্রেজ এভাবে সরিয়ে নিন:

openssl rsa -in encrypted.key -out myserver.key.pem

পদক্ষেপ ৩: Cloud Console-এ সার্টিফিকেট আপলোড করুন

  • Google Cloud Console খুলুন এবং আপনার প্রজেক্ট নির্বাচন করুন।
  • Navigation menu > App Engine > Settings-এ যান, তারপর SSL Certificates ট্যাব খুলুন।
  • Upload a new certificate-এ ক্লিক করুন।
  • সার্টিফিকেটকে একটি Name দিন, তারপর PEM encoded X.509 public key certificate-এর অধীনে concat.crt এবং Unencrypted PEM encoded RSA private key-এর অধীনে myserver.key.pem আপলোড করুন।
  • Upload-এ ক্লিক করুন।

পদক্ষেপ ৪: আপনার ডোমেইনগুলোতে সার্টিফিকেট বরাদ্দ করুন

সার্টিফিকেটের বিবরণ পৃষ্ঠায়, আপনি যেসব কাস্টম ডোমেইন সুরক্ষিত করতে চান সেগুলো নির্বাচন করুন, তারপর Save-এ ক্লিক করুন। যদি কোনো ডোমেইন বর্তমানে একটি Google-পরিচালিত সার্টিফিকেট ব্যবহার করে থাকে, তাহলে প্রথমে এর জন্য ম্যানেজড মোড নিষ্ক্রিয় করুন; অন্যথায় আপলোড প্রয়োগ হবে না।

পদক্ষেপ ৫ (ঐচ্ছিক): gcloud CLI থেকে আপলোড এবং বাইন্ড করুন

কমান্ড লাইন থেকে একই অপারেশন:

gcloud app ssl-certificates create 
  --display-name="example.com 2026" 
  --certificate=concat.crt 
  --private-key=myserver.key.pem

কমান্ডটি নতুন সার্টিফিকেট ID ফিরিয়ে দেয়। এটিকে একটি ম্যাপ করা ডোমেইনে বাইন্ড করুন এবং সেই ম্যাপিংয়ের জন্য ম্যানেজড মোড বন্ধ করুন:

gcloud app domain-mappings update www.example.com 
  --certificate-id=CERT_ID 
  --certificate-management=manual

পরে ফ্রি Google-পরিচালিত সার্টিফিকেটে ফিরে যাওয়ার জন্য, চালান:

gcloud app domain-mappings update www.example.com 
  --certificate-management=automatic

নোট এবং সীমাবদ্ধতা

  • ম্যানেজড সার্টিফিকেট ওয়াইল্ডকার্ড কভার করে না। *.example.com-এর জন্য, অপশন ২-এর মতো একটি ওয়াইল্ডকার্ড সার্টিফিকেট আপলোড করুন।
  • Let’s Encrypt প্রতি বেস ডোমেইনে সপ্তাহে ৫০টি ম্যানেজড সার্টিফিকেট ইস্যু করার সীমা রাখে। এই সীমা খুব কমই সমস্যা হয়, কিন্তু আপনি যদি একসাথে অনেক সাবডোমেইন ম্যাপ করেন তাহলে এটি গুরুত্বপূর্ণ।
  • কোনো ডোমেইনে বরাদ্দ না করা আপলোড করা সার্টিফিকেট ৩০ দিন পর স্বয়ংক্রিয়ভাবে ডিলিট হয়ে যায়।
  • একটি একক আপলোড করা PEM ফাইলে সর্বোচ্চ একটি লিফ প্লাস চারটি ইন্টারমিডিয়েট থাকতে পারে।
  • একটি আপলোড করা সার্টিফিকেট আপনার Cloud সংস্থার সমস্ত প্রজেক্টে দৃশ্যমান, তাই একটি একক ওয়াইল্ডকার্ড পুনরায় ব্যবহার করা যায়।

SSL ইনস্টলেশন পরীক্ষা করুন

আপনার সাইট https:// এর মাধ্যমে খুলুন এবং প্যাডলক নিশ্চিত করুন, তারপর সার্টিফিকেট, চেইন এবং প্রোটোকল সমর্থনের উপর একটি তাৎক্ষণিক রিপোর্টের জন্য আমাদের SSL Checker দিয়ে আরও গভীর স্কান চালান।

সচরাচর জিজ্ঞাসিত প্রশ্নাবলী

App Engine কি আপনাকে ফ্রি SSL সার্টিফিকেট দেয়?

হ্যাঁ। একবার আপনি একটি যাচাইকৃত কাস্টম ডোমেইন আপনার App Engine অ্যাপ্লিকেশনের সাথে ম্যাপ করলে এবং DNS-কে Google-এর দিকে নির্দেশ করলে, App Engine স্বয়ংক্রিয়ভাবে Let’s Encrypt-এর মাধ্যমে একটি ফ্রি SSL সার্টিফিকেট প্রভিশন করে এবং আপনার জন্য এটি রিনিউ করে। এর জন্য আপনাকে কোনো অর্থ প্রদান করতে হয় না এবং কিছু আপলোড করতে হয় না।

আমি কি App Engine-এ একটি ওয়াইল্ডকার্ড সার্টিফিকেট ব্যবহার করতে পারি?

ফ্রি Google-পরিচালিত সার্টিফিকেটগুলো ওয়াইল্ডকার্ড সমর্থন করে না। *.example.com সুরক্ষিত করতে, একটি ওয়াইল্ডকার্ড সার্টিফিকেট কিনুন, লিফ এবং ইন্টারমিডিয়েটগুলোকে একটি একক PEM-এ সংযুক্ত করুন, তারপর App Engine > Settings > SSL Certificates-এর অধীনে এটি আপলোড করুন (উপরের অপশন ২)।

আমার কাস্টম ডোমেইন কেন “managed certificate pending” দেখায়?

আপনার ডোমেইনের DNS রেকর্ড ম্যাপিং তৈরির সময় প্রদত্ত Google IP-তে রিজলভ না হওয়া পর্যন্ত App Engine একটি Let’s Encrypt সার্টিফিকেট ইস্যু করতে পারে না। যাচাই করুন যে A, AAAA, এবং CNAME রেকর্ডগুলো Custom Domains-এর অধীনে দেখানো মানগুলোর সাথে মিলে, তারপর DNS প্রোপাগেশনের জন্য অপেক্ষা করুন, যাতে ২৪ ঘণ্টা পর্যন্ত সময় লাগতে পারে। স্ট্যাটাস পুনরায় চেক করতে gcloud app domain-mappings list চালান।

App Engine-এ আমি কীভাবে HTTP থেকে HTTPS-এ রিডাইরেক্ট করব?

স্ট্যান্ডার্ড এনভায়রনমেন্টে, app.yaml-এর প্রতিটি হ্যান্ডলারে secure: always (এবং ঐচ্ছিকভাবে redirect_http_response_code: 301) যুক্ত করুন, তারপর gcloud app deploy দিয়ে পুনরায় ডিপ্লয় করুন। ফ্লেক্সিবল এনভায়রনমেন্টে, অ্যাপ্লিকেশন বা লোড-ব্যালান্সার স্তরে রিডাইরেক্ট সম্পাদন করুন।

আমাকে নিজে কি সার্টিফিকেট রিনিউ করতে হবে?

শুধুমাত্র যদি আপনি আপনার নিজেরটি আপলোড করেন। Google-পরিচালিত সার্টিফিকেট স্বয়ংক্রিয়ভাবে রিনিউ হয় যতক্ষণ ডোমেইন এখনও ম্যাপ করা আছে এবং DNS এখনও App Engine-এ রিজলভ হচ্ছে। আপলোড করা থার্ড-পার্টি সার্টিফিকেট CA দ্বারা নির্ধারিত তারিখে মেয়াদ শেষ হয় (বর্তমানে পাবলিক TLS সার্টিফিকেটের জন্য প্রায় এক বছর পর্যন্ত), তাই সেই তারিখের আগে আপনাকে আপলোড-এবং-বরাদ্দ পদক্ষেপগুলো পুনরাবৃত্তি করতে হবে।

আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!

দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10

উড়ন্ত একটি ড্রাগনের একটি বিস্তারিত চিত্র
লিখেছেন

SSL শংসাপত্রে বিশেষজ্ঞ অভিজ্ঞ বিষয়বস্তু লেখক। জটিল সাইবারসিকিউরিটি বিষয়গুলিকে পরিষ্কার, আকর্ষক সামগ্রীতে রূপান্তর করা। প্রভাবশালী বর্ণনার মাধ্যমে ডিজিটাল নিরাপত্তার উন্নতিতে অবদান রাখুন।