温馨提示×

apache2怎么开启ssl

小樊
42
2026-10-02 04:54:39
栏目: 云计算

下面以 Ubuntu/Debian 上的 Apache2 为例,说明如何开启 SSL(HTTPS)。


一、准备 SSL 证书

你可以使用两种方式:

1. 自签名证书(测试用)

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

2. 正式证书(生产环境)

  • Let’s Encrypt(推荐)
sudo apt install certbot python3-certbot-apache
sudo certbot --apache

Certbot 会自动配置 SSL。


二、启用 Apache SSL 模块

sudo a2enmod ssl
sudo systemctl restart apache2

三、配置 SSL 虚拟主机

1. 复制默认站点配置

sudo cp /etc/apache2/sites-available/000-default.conf \
/etc/apache2/sites-available/000-default-ssl.conf

2. 编辑 SSL 配置

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

示例内容:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

四、启用 SSL 站点

sudo a2ensite 000-default-ssl.conf
sudo systemctl reload apache2

五、可选:HTTP 强制跳转 HTTPS

编辑 80 端口配置:

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

添加:

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

然后:

sudo systemctl reload apache2

六、验证

浏览器访问:

https://你的域名或IP

使用 Let’s Encrypt:

https://example.com

如果你用的是 CentOS / Rocky / AlmaLinux 或 Docker Apache,可以告诉我,我给你对应版本的配置。

0 踩