Artigo Diretório
Como se inscrever no Let's Encrypt?
Vamos criptografar o Princípio do Certificado SSL e Tutorial de Instalação
O que é SSL? Chen Weiliang abordou esse tema em seu artigo anterior, " Qual a diferença entre HTTP e HTTPS? Uma explicação detalhada do processo de criptografia SSL ".
Além dos sites de comércio eletrônico , que precisam adquirir certificados SSL criptografados avançados, os profissionais de novas mídias que usam sites para promover suas contas oficiais do WeChat podem instalar certificados SSL criptografados gratuitos. Isso pode ajudar no SEO e melhorar o posicionamento do site nos mecanismos de busca.

O Let's Encrypt possui seu próprio fluxo de trabalho ( https://certbot.eff.org/ ). Usuários de Linux podem consultar esse fluxo de trabalho e seguir este tutorial.
Baixe a ferramenta certbot-auto primeiro e, em seguida, execute as dependências de instalação da ferramenta.
wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
Gerar certificado SSL
Em seguida, tomando como exemplo o nome de domínio do blog de Chen Weiliang , modifique-o de acordo com suas necessidades e execute o seguinte comando via SSH.
Certifique-se de modificar o comando em:
- 邮箱
- caminho do servidor
- nome de domínio do site
Diretório único de domínio único, gere um certificado:
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com
Diretório único de vários domínios, gere um certificado: (ou seja, vários nomes de domínio, diretório único, use o mesmo certificado)
./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
O certificado SSL gerado será salvo em:/etc/letsencrypt/live/www.chenweiliang.com/ Em conteúdo.
Vários nomes de domínio e vários diretórios, gere um certificado: (ou seja, vários nomes de domínio, vários diretórios, use o mesmo certificado)
./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
Depois que o certificado Let's Encrypt for instalado com sucesso, a seguinte mensagem de prompt aparecerá no SSH:
ANOTAÇÕES IMPORTANTES:
– Parabéns! Seu certificado e chain foram salvos em:
/etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem
Seu arquivo de chave foi salvo em:
/etc/letsencrypt/live/www.chenweiliang.com/privkey.pem
Seu certificado expirará em 2018/02/26. Para obter um certificado novo ou aprimorado
versão deste certificado no futuro, basta executar certbot-auto
novamente. Para renovar de forma não interativa *todos* os seus certificados, execute
"certbot-renovação automática"
- Se você gosta do Certbot, considere apoiar nosso trabalho da seguinte forma:
Faça uma doação para o ISRG / Let's Encrypt: https://letsencrypt.org/donate
Doações para a EFF: https://eff.org/donate-le
Renovação do Certificado SSL
A renovação de certificados também é muito prática, utilizando o crontab para renovação automática. Em algumas versões do Debian que não possuem o crontab instalado, você pode instalá-lo manualmente primeiro.
apt-get install cron
Os seguintes comandos para nginx e apache são inseridos no arquivo /etc/crontab , o que significa que são renovados a cada 10 dias, sendo que um período de validade de 90 dias é suficiente.
Arquivo crontab Nginx, adicione:
0 3 */10 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
Arquivo crontab do Apache, por favor adicione:
0 3 */10 * * /root/certbot-auto renew --renew-hook "service httpd restart"
Configuração do Apache com certificado SSL
Agora, precisamos fazer alterações na configuração do Apache.
Dicas:
- se você usarPainel de controle CWP, na verificação Adicionar nome de domínio Gerar automaticamente um certificado SSL, ele configurará automaticamente o certificado SSL para o Apache.
- Se você executar mais das etapas a seguir, poderá ocorrer um erro após reiniciar o Apache.
- Se houver um erro, exclua a configuração que você adicionou manualmente.
Edite o arquivo httpd.conf ▼
/usr/local/apache/conf/httpd.conf
Encontrar ▼
Listen 443
- (remova o número do comentário anterior #)
ou adicione a porta de escuta 443 ▼
Listen 443
SSH verifique a porta de escuta do Apache ▼
grep ^Listen /usr/local/apache/conf/httpd.conf
Encontrar ▼
mod_ssl
- (remova o número do comentário anterior #)
ou adicione ▼
LoadModule ssl_module modules/mod_ssl.so
Encontrar ▼
httpd-ssl
- (remova o número do comentário anterior #)
Em seguida, o SSH execute o seguinte comando (observe para alterar o caminho para o seu próprio):
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
Em seguida, no final da configuração do Apache para o site que você criou, em </VirtualHost>.
Adicione o arquivo de configuração da seção SSL (observe para remover o comentário e alterar o caminho para o seu próprio):
<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>
Finalmente reinicie o Apache nele:
service httpd restart
Apache forçar redirecionamento HTTP para HTTPS
- Muitas solicitações da Web sempre podem ser executadas apenas com SSL.
- Precisamos ter certeza de que toda vez que usarmos SSL, o site deve ser acessado via SSL.
- Se algum usuário tentar acessar o site com uma URL não SSL, ele deverá ser redirecionado para o site SSL.
- Redirecionar para URL SSL usando o módulo mod_rewrite do Apache.
- Como usar o pacote de instalação com um clique do LAMP, instalação automática integrada do certificado SSL e redirecionamento forçado para HTTPS, redirecionamento para HTTPSÀ força, você não precisa adicionar um redirecionamento HTTPS.
Adicionar regra de redirecionamento
- No arquivo de configuração do Apache, edite o host virtual do site e adicione as seguintes configurações.
- Você também pode adicionar as mesmas configurações à raiz do documento em seu site no arquivo .htaccess.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Se você quiser apenas especificar um determinado URL para redirecionar para HTTPS:
RewriteEngine On RewriteRule ^message$ https://www.etufo.org/message [R=301,L]
- Se alguém tentar acessar mensagem , a página saltará para https e o usuário só poderá acessar a URL com SSL.
Reinicie o Apache para que o arquivo .htaccess tenha efeito:
service httpd restart
注意 事项
- Por favor, altere o endereço de e-mail acima para o seu endereço de e-mail.
- Lembre-se de alterar o nome de domínio do site acima para o nome de domínio do seu site.
Problema de localização da regra de redirecionamento
Ao inserir regras de redirecionamento em regras pseudoestáticas, você frequentemente encontrará o problema de que o HTTP não consegue redirecionar todo o site para HTTPS.
Inicialmente copiamos o código de redirecionamento para .htaccess e ele aparecerá nos seguintes casos ▼
![A regra de redirecionamento [L] está acima. A regra de redirecionamento [L] está acima.](https://img.chenweiliang.com/2018/03/https-rule-1.png)
- [L] indica que a regra atual é a última regra, pare de analisar as seguintes regras de reescrita.
- Portanto, ao acessar a página do artigo redirecionado, [L] interrompe as seguintes regras, para que as regras de redirecionamento não funcionem.
Ao acessar uma página inicial HTTP, queremos acionar um redirecionamento de URL, ignorando as regras de reescrita de URL para executar as regras de redirecionamento, de forma que todo o site possa ser redirecionado de HTTP para HTTPS.
Não coloque regras de redirecionamento HTTPS abaixo das regras [L] ; coloque-as acima das regras [L] . ▼
![As regras de redirecionamento SSL pseudoestáticas [L] estão abaixo. As regras de redirecionamento SSL pseudoestáticas [L] estão abaixo.](https://img.chenweiliang.com/2018/03/pseudo-static-ssl-jump.png)
Leitura estendida:
- Qual é a diferença entre http vs https? Explicação detalhada do processo de criptografia SSL
- O que devo fazer se receber um erro 500 após instalar o certificado Let's Encrypt SSL no painel de controle do CWP?
- Saltar automaticamente para o nome de domínio de segundo nível sem o nome de domínio de nível superior www: o nome de domínio raiz 301 redireciona www
Esperamos que o artigo "Como solicitar o Let's Encrypt? Princípios e tutorial de instalação de certificados SSL gratuitos do Let's Encrypt", compartilhado no blog de Chen Weiliang ( https://www.chenweiliang.com/ ), seja útil para você.
Sinta-se à vontade para compartilhar o link deste artigo: https://www.chenweiliang.com/cwl-512.html
