Справочник на статиите
Как да кандидатствате за Let's Encrypt?
Let’s Encrypt SSL Certificate Принцип и урок за инсталиране
Какво е SSL? Чен Уейлян обсъди това в предишната си статия „ Каква е разликата между HTTP и HTTPS? Подробно обяснение на процеса на SSL криптиране “.
Освен сайтовете за електронна търговия , които трябва да закупят SSL сертификати с високо ниво на криптиране, специалистите по нови медии , които използват уебсайтове за популяризиране на своите официални акаунти в WeChat, могат да инсталират безплатни криптирани SSL сертификати. Това може да помогне за SEO и да подобри класирането на уебсайта по ключови думи в търсачките.

Let's Encrypt има собствен работен процес ( https://certbot.eff.org/ ). Потребителите на Linux могат да се обърнат към този работен процес и да следват това ръководство.
Първо изтеглете инструмента certbot-auto, след което стартирайте инсталационните зависимости на инструмента.
wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
Генериране на SSL сертификат
След това, като вземем за пример името на домейна на блога на Чен Вейлианг , моля, променете го според вашите нужди и изпълнете следната команда чрез SSH.
Не забравяйте да промените командата:
- пощенска кутия
- сървърен път
- име на домейн на уебсайт
Единична директория с един домейн, генерирайте сертификат:
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com
Единична директория с множество домейни, генериране на сертификат: (т.е. множество имена на домейни, една директория, използване на един и същ сертификат)
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com -d img.chenweiliang.com
Генерираният SSL сертификат ще бъде записан в:/etc/letsencrypt/live/www.chenweiliang.com/ Под съдържанието.
Множество имена на домейни и множество директории, генериране на сертификат: (т.е. множество имена на домейни, множество директории, използване на един и същ сертификат)
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com -d img.chenweiliang.com -w /home/eloha/public_html/site/etufo.org -d www.etufo.org -d img.etufo.org
След като сертификатът Let's Encrypt бъде инсталиран успешно, в SSH ще се появи следното подканващо съобщение:
Важни забележки:
– Честито!Вашият сертификат и глain са запазени на:
/etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem
Вашият ключов файл е запазен на:
/etc/letsencrypt/live/www.chenweiliang.com/privkey.pem
Вашият сертификат ще изтече на 2018-02-26. За да получите нов или променен
версия на този сертификат в бъдеще, просто стартирайте certbot-auto
За неинтерактивно подновяване на *всички* ваши сертификати, стартирайте
"certbot-автоматично подновяване"
- Ако ви харесва Certbot, моля, обмислете поддръжката на нашата работа чрез:
Дарение на ISRG / Let's Encrypt: https://letsencrypt.org/donate
Дарения за EFF: https://eff.org/donate-le
Подновяване на SSL сертификат
Подновяването на сертификата също е много удобно, като се използва crontab за автоматично подновяване. За някои версии на Debian, които нямат инсталиран crontab, можете първо да го инсталирате ръчно.
apt-get install cron
Следните команди за nginx и apache се въвеждат във файла /etc/crontab , което означава, че те се подновяват на всеки 10 дни и е достатъчен 90-дневен период на валидност.
Nginx crontab файл, моля, добавете:
0 3 */10 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
Apache crontab файл, моля, добавете:
0 3 */10 * * /root/certbot-auto renew --renew-hook "service httpd restart"
SSL сертификат Apache конфигурация
Сега трябва да направим промени в конфигурацията на Apache.
Съвети:
- ако използватеCWP контролен панел, в Добавете име на домейн отметнете Автоматично генериране на SSL сертификат, той автоматично ще конфигурира SSL сертификата за Apache.
- Ако направите повече от следните стъпки, може да възникне грешка след рестартиране на Apache.
- Ако има грешка, изтрийте конфигурацията, която сте добавили ръчно.
Редактирайте файла httpd.conf ▼
/usr/local/apache/conf/httpd.conf
Намерете ▼
Listen 443
- (премахнете предходния номер на коментар #)
или добавете порт за слушане 443 ▼
Listen 443
SSH проверка на порт за слушане на Apache ▼
grep ^Listen /usr/local/apache/conf/httpd.conf
Намерете ▼
mod_ssl
- (премахнете предходния номер на коментар #)
или добавете ▼
LoadModule ssl_module modules/mod_ssl.so
Намерете ▼
httpd-ssl
- (премахнете предходния номер на коментар #)
След това SSH изпълнете следната команда (забележете, че трябва да промените пътя към вашия собствен):
at >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLHonorCipherOrder on SSLProtocol all -SSLv2 -SSLv3 SSLProxyProtocol all -SSLv2 -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex "file:/usr/local/apache/logs/ssl_mutex" EOF
След това, в края на конфигурацията на Apache за уебсайта, който създадохте, под </VirtualHost>.
Добавете конфигурационния файл на секцията SSL (забележка за премахване на коментара и промяна на пътя към ваш собствен):
<VirtualHost *:443> DocumentRoot /home/admin/web/chenweiliang.com/public_html //网站目录 ServerName www.chenweiliang.com:443 //域名 ServerAdmin [email protected] //邮箱 ErrorLog "/var/log/www.chenweiliang.com-error_log" //错误日志 CustomLog "/var/log/www.chenweiliang.com-access_log" common //访问日志 SSLEngine on SSLCertificateFile /etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem //之前生成的证书 SSLCertificateKeyFile /etc/letsencrypt/live/www.chenweiliang.com/privkey.pem //之前生成的密钥 <Directory "/home/admin/web/chenweiliang.com/public_html"> //网站目录 SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All suPHP_UserGroup eloha eloha //用户组(有些服务器配置需要,有些可能不需要,出错请删除此行) Order allow,deny Allow from all DirectoryIndex index.html index.phps </Directory> </VirtualHost>
Накрая рестартирайте Apache върху него:
service httpd restart
Apache принудително пренасочва HTTP към HTTPS
- Много уеб заявки винаги могат да се изпълняват само с SSL.
- Трябва да сме сигурни, че всеки път, когато използваме SSL, уебсайтът трябва да бъде достъпен чрез SSL.
- Ако някой потребител се опита да осъществи достъп до уебсайта с не-SSL URL, той трябва да бъде пренасочен към SSL уебсайта.
- Пренасочване към SSL URL с помощта на Apache mod_rewrite модул.
- Като например използване на LAMP инсталационен пакет с едно щракване, вградена автоматична инсталация на SSL сертификат и принудително пренасочване към HTTPS, пренасочване към HTTPSВ сила, не е необходимо да добавяте HTTPS пренасочване.
Добавете правило за пренасочване
- В конфигурационния файл на Apache редактирайте виртуалния хост на уебсайта и добавете следните настройки.
- Можете също да добавите същите настройки към корена на документа на вашия уебсайт във вашия .htaccess файл.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Ако просто искате да посочите определен URL адрес за пренасочване към HTTPS:
RewriteEngine On RewriteRule ^message$ https://www.etufo.org/message [R=301,L]
- Ако някой се опита да получи достъп съобщение , страницата ще премине към https и потребителят ще има достъп до URL адреса само с SSL.
Рестартирайте Apache, за да влезе в сила файлът .htaccess:
service httpd restart
注意 事项
- Моля, променете горния имейл адрес на вашия имейл адрес.
- Моля, не забравяйте да промените горепосоченото име на домейн на уебсайт с име на домейн на вашия уебсайт.
Проблем с местоположението на правилото за пренасочване
Когато поставяте правила за пренасочване под псевдостатични правила, често ще се сблъскате с проблема, че HTTP не може да пренасочи целия сайт към HTTPS.
Първоначално копирахме кода за пренасочване в .htaccess и той ще се показва в следните случаи ▼
![Правилото за пренасочване [L] е показано по-горе. Правилото за пренасочване [L] е показано по-горе.](https://img.chenweiliang.com/2018/03/https-rule-1.png)
- [L] показва, че текущото правило е последното правило, спрете да анализирате следните правила за пренаписване.
- Така че при достъп до пренасочената страница със статия [L] спира следното правило, така че правилото за пренасочване не работи.
Когато осъществяваме достъп до начална страница с HTTP протокол, искаме да задействаме пренасочване на URL адрес, заобикаляйки правилата за пренаписване на URL адреси, за да изпълним правилата за пренасочване, така че целият сайт да може да бъде пренасочен от HTTP към HTTPS.
Не поставяйте правилата за пренасочване на HTTPS под правилата [L] ; поставете ги над правилата [L] . ▼
![Псевдостатичните правила за SSL пренасочване [L] са по-долу. Псевдостатичните правила за SSL пренасочване [L] са по-долу.](https://img.chenweiliang.com/2018/03/pseudo-static-ssl-jump.png)
Разширено четене:
- Каква е разликата между http срещу https? Подробно обяснение на процеса на SSL криптиране
- Какво трябва да направя, ако получа грешка 500 след инсталиране на Let's Encrypt SSL сертификат в контролния панел на CWP?
- Автоматично преминаване към името на домейн от второ ниво без www името на домейн от първо ниво: името на основния домейн 301 пренасочва www
Надяваме се, че статията „Как да кандидатствате за Let's Encrypt? Принципи и ръководство за инсталиране на безплатни SSL сертификати от Let's Encrypt“, споделена в блога на Чен Вейлианг ( https://www.chenweiliang.com/ ), ще ви бъде полезна.
Чувствайте се свободни да споделите линка към тази статия: https://www.chenweiliang.com/cwl-512.html
