首先申请 ssl证书,可以在 腾讯云 或 阿里云 或 利用Let’s Encrypt创建 。这里以 腾讯云 为例。
- 启用 ssl 模块
sudo a2enmod ssl
- 将得到的证书文件放到确定的目录,如统一放在
/etc/apache2/ssl
。 - 就地复制
default-ssl.conf
,然后修改新文件中的 域名,DocumentRoot,证书路径,如:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName domain.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/domain.com-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/domain.com-ssl-access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/2_domain.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/3_domain.com.key
SSLCertificateChainFile /etc/apache2/ssl/1_root_bundle.crt
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
- 修改站点根目录下
.htaccess
文件,添加以下代码,实现 http 自动跳转到 https:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
</IfModule>