date:
updated:

设置Apache启用https,配置证书


此配置方法针对debian9

1
2
3
4
5
# 安装apache:
apt-get install apache2

# 开启ssl模块:
a2enmod ssl

输入指令后会生成一个文件:/etc/apache2/sites-available/default-ssl.conf
最好先备份一下,以防万一:

1
2
cd /etc/apache2/sites-available/
cp default-ssl.conf default-ssl.conf.bak

编辑这个文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName # 你的域名
DocumentRoot /var/www/html

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

SSLEngine on

SSLCertificateFile # 证书文件的路径
SSLCertificateKeyFile # 私钥文件的路径
SSLCertificateChainFile # 证书链文件的路径,默认这一行是注释的
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>


</VirtualHost>
</IfModule>

编辑完成后保存,执行以下指令:

1
2
3
4
5
6
7
# 启用https站点配置
a2ensite default-ssl.conf
# 如果需要,可以关闭http站点:
a2dissite 000-default.conf

# 最后,重加载apache:
systemctl reload apache2

现在你可以通过https访问页面了。


附录,http自动转跳到https:

输入指令,开启重写模块

1
a2enmod rewrite

编辑文件/etc/apache2/apache2.conf,大概182行左右的位置,插入内容:

1
2
3
4
5
<Directory "/var/www/html"> 
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>

← Prev MariaDB误删了root账户怎么办? | 设置Webmin使用https访问 Next →
打赏
支付宝 | Alipay
微信 | WeChat