অ্যাপাচি এসএসএল: সার্ভার শংসাপত্রে আইডি অন্তর্ভুক্ত নয় যা সার্ভারের নামের সাথে মেলে


21

আমি আমার অ্যাপাচি 2 ওয়েব সার্ভারে এসএসএল স্থাপনের চেষ্টা করছি, তবে মনে হয় এটি মোটেই কার্যকর হয় না।

আমি ওপেনসেল সহ সার্টিফিকেট ফাইলগুলি তৈরি করতে টিউটোরিয়াল অনুসরণ করেছি এবং /etc/apache2/sites-available/default-ssl.confসঠিকভাবে কনফিগার করেছি ।

আমি যখনই https দিয়ে আমার ওয়েবসাইটটি খোলার চেষ্টা করি তখনই আমার ব্রাউজারটি সুরক্ষা সমস্যার কারণে সংযোগ দিতে অস্বীকার করে। এটি বলে যে আমি আমার ওয়েবসাইটটি সঠিকভাবে কনফিগার করেছি না।

আমার মধ্যে /var/log/apache2/error.logআমি সতর্কতা পাচ্ছি, যা বলে যে আমার সার্ভার শংসাপত্রে কোনও আইডি অন্তর্ভুক্ত নয় যা সার্ভারের নামের সাথে মেলে।

[Mon Apr 10 11:03:24.041813 2017] [mpm_prefork:notice] [pid 1222] AH00169: caught SIGTERM, shutting down
[Mon Apr 10 11:03:30.566578 2017] [ssl:warn] [pid 661] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.579088 2017] [ssl:warn] [pid 1194] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.592958 2017] [mpm_prefork:notice] [pid 1194] AH00163: Apache/2.4.25 (Raspbian) OpenSSL/1.0.2k configured -- resuming normal operations
[Mon Apr 10 11:03:31.593136 2017] [core:notice] [pid 1194] AH00094: Command line: '/usr/sbin/apache2'

এটি কীভাবে সমাধান করবেন সে সম্পর্কে আপনার কোনও ধারণা আছে? ধন্যবাদ!


আপনি কি অ্যাপাচি ২.২ বা ২.৪ ব্যবহার করছেন? আমি 2.2 থেকে 2.4 থেকে আপগ্রেড করেছি এবং এই ত্রুটি পেয়েছি। আমার ক্ষেত্রে এটি কোনও সর্বজনীন সার্ভার নয়, এটি একটি অভ্যন্তরীণ, সুতরাং আমি অনুমান করছি যে স্ব-স্বাক্ষরিত শংসাপত্রটি করবে।
svhyd

যখন আমি এই ত্রুটি পেয়েছি তখন আমি আমার পাবলিক সার্ভারে অ্যাপাচি ২.২ ব্যবহার করছিলাম (ডাবিয়ান ৮) লেটস এনক্রিপ্ট-এ স্যুইচ করার পরে ত্রুটিটি চলে গেছে তাই আমি অনুমান করি এটি স্ব-স্বাক্ষরিত শংসাপত্র যা ত্রুটির কারণ হয়েছিল।
পিক্সেলস মিউজিক

উত্তর:


7

ঠিক আছে, আমি লক্ষ্য করেছি যে এই পোস্টটি সম্প্রতি প্রায়শই দেখা হয় এবং তাই মনে হয় যে আমি প্রচুর লোক একই সমস্যার মুখোমুখি হচ্ছি। যদি তা হয় তবে এটি আপনাকে সাহায্য করতে পারে।

আমি আমার ওয়েবসারভারের জন্য এসএসএল-শংসাপত্র তৈরি করতে একটি সাধারণ ধাপে ধাপে টিউটোরিয়াল অনুসরণ করেছি। অনেক টিউটোরিয়াল এর মত আমি যে টিউটোরিয়ালটি অনুসরণ করেছি তার ফলাফল ওপেনএসএসএল ব্যবহার করে একটি স্ব-স্বাক্ষরিত শংসাপত্র। হ্যাঁ স্ব-স্বাক্ষরিত , এটি ছিল সমস্যা। ব্রাউজারটি নিজের দ্বারা স্বাক্ষরিত শংসাপত্রের কারণে এটি সার্ভারকে বিশ্বাস করতে পারেনি। আচ্ছা আমিও করতাম না ...

একটি শংসাপত্র একটি বাহ্যিক বিশ্বাসযোগ্য শংসাপত্র কর্তৃপক্ষের (সিএ) দ্বারা স্বাক্ষর করতে হবে। সুতরাং আমি লেটস এনক্রিপ্টকে হোঁচট খেয়েছি যা আপনার জন্য সমস্ত কাজ করে এবং এটি সেট আপ করা আরও সহজ এবং সেরাটি: এটি একেবারে বিনামূল্যে।

স্থাপন

1) আপনি ওপেনএসএসএল ব্যবহার করে তৈরি করেছেন আপনার পুরানো এসএসএল শংসাপত্র ফাইলগুলি মুছুন

2) ডেবিয়ানে সার্টিবোট ক্লায়েন্ট পেতে ব্যাকপোর্টগুলি খুলুন। আপনার জানা উচিত যে এটি অসম্পূর্ণ সফ্টওয়্যারগুলির জন্য একটি গর্ত খুলবে! আপনি যখন যা করছেন সে সম্পর্কে আপনি সচেতন হলে কেবল প্যাকেজগুলি ইনস্টল করুন।

echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list

3) আপনার লিনাক্স সিস্টেম আপডেট করুন

sudo apt-get update

4) সারটবট ইনস্টল করুন

sudo apt-get install python-certbot-apache -t jessie-backports

5) অ্যাপাচি সার্ভারনাম এবং সার্ভারআলিয়াস সেট আপ করুন

sudo nano /etc/apache2/sites-available/000-default.conf

6) অ্যাপাচি কনফিগারেশন ফাইল সম্পাদনা করুন

<VirtualHost *:80>
    . . .
    ServerName example.com
    ServerAlias www.example.com
    . . .
</VirtualHost>

7) একটি সঠিক বাক্য গঠন পরীক্ষা করুন

sudo apache2ctl configtest

8) কনফিগারেশন ফাইলটি যদি ভাল দেখাচ্ছে, অ্যাপাচি সার্ভারটি পুনরায় চালু করুন

sudo systemctl restart apache2

9) সার্টিবোট ব্যবহার করে একটি শংসাপত্র সেট আপ করুন এবং স্ক্রিনে নির্দেশ অনুসরণ করুন।

sudo certbot --apache

নবীকরণ

লেটস এনক্রিপ্টের সমস্ত শংসাপত্রগুলি 3 মাসের মধ্যে বৈধ। নবায়ন করতে আপনি ম্যানুয়ালি চালাতে পারেন

sudo certbot renew

বা ক্রোন জব হিসাবে এই পরিষেবাটি স্বয়ংক্রিয় করুন

sudo crontab -e

এবং প্রতি সোমবার সকাল আড়াইটায় একটি নবায়ন আবেদন করতে নিম্নলিখিত সারিতে প্রবেশ করুন।

. . .
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log

আপনি এখানে আরও বিশদযুক্ত টিউটোরিয়াল অনুসরণ করতে পারেন: https://www.digitalocean.com/commune/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8


এটি লোকালহোস্টের জন্য ব্যবহার করা যাবে না (স্থানীয় নেটওয়ার্কে ভার্চুয়াল মেশিন), এর অর্থ হ'ল আসুন এনক্রিপ্ট করার জন্য আপনাকে একটি ডোমেন কিনতে হবে?
Lewis4u

1
হ্যাঁ, কাজ করতে এনক্রিপ্ট করার জন্য আপনার ওয়েবসভারটি একটি নিবন্ধিত ডোমেনের মাধ্যমে অ্যাক্সেসযোগ্য হতে হবে।
পিক্সেলস মিউজিক

2

আপনি যদি অন্য কোনও এসএসএল ত্রুটি দেখতে পাচ্ছেন না এবং আপনি যদি httpd.conf ফাইলে 'লগলিভেল ডিবাগ' সেট করার চেষ্টা করে থাকেন তবে এই ত্রুটি বার্তাটি 'লডিং 443' httpd.conf ফাইল থেকে নিখোঁজ হওয়ার প্রস্তাব দিতে পারে।


আমি আপাচি 443 শোনার জন্য সম্পূর্ণ ভুলে গেছি এটি কেবল 80 টি শোনার জন্য শুনছিল
রবার্ট

1

এগুলি ত্রুটি নয় - এগুলি সতর্কবাণী। আপনার একটি ডিফল্ট এসএসএল হোস্ট সংজ্ঞায়িত হয়ে থাকে এবং শংসাপত্রের সাধারণ নামটি ক্লায়েন্টদের সাথে সংযুক্ত হওয়ার জন্য ব্যবহৃত হোস্ট নামের সাথে মিলে যায় এমন কোনও শংসাপত্রের সাথে মোড_এসএল চালানো বেশ সম্ভব।

পরেরটি আপনার ক্ষেত্রে সত্য বলে মনে হয় না। জ্যাকব যেমন বলেছেন, আপনি সিএসআর তৈরি করার সময় আপনার সঠিক হোস্টের নামটি সাধারণ নাম (বা একটি উপনাম) হিসাবে নির্দিষ্ট করতে হবে ।

শংসাপত্রে বর্তমানে কোন নাম (গুলি) রয়েছে তা দেখতে:

openssl s_client -showcerts -connect ${HOSTNAME}:443

যদি মেশিনে একাধিক শংসাপত্র ইনস্টল করা থাকে এবং একই আইপি ঠিকানায় পরিবেশিত হয়, তবে:

openssl s_client -showcerts -connect ${HOSTIP}:443 -servername ${HOSTNAME}

(যেখানে $ {...} মানগুলি স্থানধারক যেখানে আপনার প্রাসঙ্গিক মানগুলির সাথে প্রতিস্থাপন করা উচিত)।


(1) আপনার সিএসআর-এ সার্ভারের নাম কমনমনামে রাখা উচিত , তবে এটি প্রকৃতপক্ষে প্রয়োজন কিনা (সিএ চেক করে এবং / অথবা এটি অনুলিপি করে) সিএ (2) এর উপর নির্ভর করে openssl s_clientএবং পাতার শংসাপত্রের জন্য ইস্যুকারী, যা একমাত্র আপনার এখানে, ছাড়া প্রয়োজন -showcerts, তবে প্রায় 2010 সাল থেকে সত্যিকারের সিএ শংসাপত্রগুলির জন্য (এবং উপযুক্ত ব্যক্তিদের দ্বারা ডিআইওয়াই সার্টিফিকেট ) আপনাকে যা দেখতে হবে তা সাবজেক্টআল্টনেম (সান) এক্সটেনশন নয় এবং তার জন্য আপনার প্রয়োজনopenssl s_client -connect h:p [-servername h] | openssl x509 -noout -text
dave_thompson_085

নোট করুন যে 2018 এর মাঝামাঝি থেকে, আপনি যদি আধুনিক ব্রাউজারগুলিতে আপনার শংসাপত্রটি যথাযথভাবে বৈধ করতে চান তবে আপনাকেও বিষয়টির বিকল্প নামগুলিতে ডিএনএস নাম নির্দিষ্ট করতে হবে।
সিমসিবিয়ান

আমি 2018 এর কোনও পরিবর্তন জানি না; ক্রোমের জন্য সান প্রয়োজন (ডিএনএস বা আইপি উভয় ক্ষেত্রে, যদিও আধুনিক ব্যবহার খুব কমই ব্যবহৃত হয়), এবং ফায়ারফক্স এবং আইই (যা আমি এখনও আধুনিক হিসাবে বিবেচনা করি) আজকের প্রয়োজন নেই - যদিও আমি আগেই বলেছিলাম পাবলিক সিএ সরবরাহ করেছে এটা অনেক দীর্ঘ।
dave_thompson_085

0

আমার স্ব-স্বাক্ষরিত শংসাপত্রের মেয়াদ শেষ হয়ে গেলে আমি সম্প্রতি এই সমস্যায় পড়েছি। আমি একটি ওয়েবসাইট থেকে নতুন শংসাপত্র তৈরি করার জন্য কমান্ডটি গুগল করেছিলাম এবং কেবল অনুলিপি করেছি।

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/apache2/ssl/apache.crt

আমার অ্যাপাচি কনফিগারেশনের ফাইলটিতে: /etc/apache2/sites-available/default-ssl.conf। শংসাপত্র ফাইল এবং কী ফাইল নিম্নলিখিত ফাইলের নাম উল্লেখ করে।

    SSLCertificateFile  /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

সুতরাং, আমার ক্ষেত্রে ত্রুটিটি এখানে দেখা সহজ সমাধান করা ছিল, এসএসএল শংসাপত্র তৈরি করার সময় শংসাপত্র কী ফাইলটির সঠিক অবস্থান সরবরাহ করে।

সুতরাং, কমান্ডটি এখানে আমার ব্যবহার করা উচিত ছিল এবং সঠিকভাবে টাইপ করা উচিত।

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

0

আমার ক্ষেত্রে আমি প্রতিটি সম্পর্কিত ডোমেনের জন্য আমার অ্যাপাচি এসএসএল কনফিগারেশন ফাইলে প্রতিস্থাপন করে এটি সমাধান করেছি:

ServerName mydomain.com
ServerAlias www.mydomain.com

দ্বারা :

ServerName www.mydomain.com
ServerAlias mydomain.com

কারণ আমার শংসাপত্রটি "www.mydomain.com" এর জন্য এবং "mydomain.com" এর জন্য নয়

সম্পূর্ণ অ্যাপাচি ফাইল:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin noreply@mydomain.com
        ServerName www.mydomain.com
        ServerAlias mydomain.com
    DocumentRoot /home/mydomain.com/public_html
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|ico|png)$ \ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ \no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    <Directory />
        Options +FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/mydomain.com/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride All
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>


ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn
SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

0

আমাদের সার্ভারনাম এবং সার্ভারএলিয়াসকে নির্দিষ্ট ডোমেনের জন্য কেবল কনফ ফাইল নয়, ডিফল্ট-এসএসএল ফাইলটিতে যুক্ত করতে হয়েছিল।
এটি আমাদের জন্য সমস্যাযুক্ত ত্রুটি থেকে মুক্তি পেয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.