在 Debian 上启用 SSL

Posted

技术标签:

【中文标题】在 Debian 上启用 SSL【英文标题】:Enabling SSL on Debian 【发布时间】:2017-10-06 11:52:13 【问题描述】:

我想在我的 Debian / Apache 和 Letsencrypt(通过 Certbot)上启用 SLL。

在 ports.conf 上,端口 80 和 443 都在监听:

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

SSL 已启用:

> a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

我的虚拟主机配置如下: 我的主机.conf

    <VirtualHost XX.XX.XX.XX:80>
        ServerName www.myhost.com
        ServerAlias myhost.com
        Redirect / https://www.myhost.com
        DocumentRoot /home/myhost/www/public/
        CustomLog /var/log/apache2/myhost.com-access.log combined
        ErrorLog /var/log/apache2/lmyhost.com-error.log
        LogLevel warn
        <Directory "/home/myhost/www/public/">
                Require all granted
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

myhost.com-le-ssl.conf:

<IfModule mod_ssl.c>
<VirtualHost XX.XX.XX.XX:443>
        ServerName www.myhost.com
        ServerAlias myhost.com
#       Redirect / https://www.myhost.com
        DocumentRoot /home/myhost/www/public/
        CustomLog /var/log/apache2/myhost.com-access.log combined
        ErrorLog /var/log/apache2/myhost.com-error.log
        LogLevel warn
        <Directory "/home/myhost/www/public/">
                Require all granted
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
SSLCertificateFile /etc/letsencrypt/live/www.myhost.com-0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.myhost.com-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

当我尝试访问http:///www.myhost.com:443 时,它可以工作。但是使用https:///www.myhost.com 我在 Chrome 上有一个错误:

ERR_SSL_PROTOCOL_ERROR

在我的服务器上,当我检查时:

openssl s_client -crlf -debug -connect www.myhost.com:443 -status -servername www.myhost.com

我明白了:

...
124222757861008:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:782:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 323 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1494247901
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

最后,在我的 Apache 错误日志中,我可以看到:

[Sun May 07 20:06:53.419500 2017] [core:debug] [pid 18433] protocol.c(1275): [client xx.xx.xx.xx:52254] AH00566: request failed: malformed request line

简而言之,启用 SSL,端口正确,当我通过其 hosts:port 调用 Apache 时,它​​可以通过。 但是,此端口无法调用我的证书并通过 https 打开我的主机。好像 SSL 被禁用了……!

你能给我一些解决这个问题的方法吗? 谢谢大家!

【问题讨论】:

这里也一样 .. 也没有运气 .. 在使用 certbot 启用 ssl 之后 【参考方案1】:

我遇到了和你一样的问题,this 是我解决它的方法,但 tl;dr 是这样的:

    vhost 配置文件必须以 .conf 结尾 你必须把它放在sites-available目录中,然后 您必须运行 a2ensite 才能启用该站点。

【讨论】:

我试过这个......但没有成功:/我现在重新安装了我的 Debian 及其工作。我不知道发生了什么...感谢您的回复!

以上是关于在 Debian 上启用 SSL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 DirectAdmin 在 Debian 10 上启用 Brotli?

Debian linux上SSH服务无法启用

在debian9上安装mongodb

如何在Debian中启用测试版/不稳定版的软件库

debian 中安装 phpmyadmin 并启用多服务器配置

Debian9.5解决在root用户下启用VNC后lightdm+Xfce4只能使用root登录,其他用户无法登陆