首先申请SSL证书,可以到阿里云申请,签发后下载Apache使用的证书。
将下载的证书中的公钥(扩展名为.pem,如果不是请修改)和key文件上传到服务器,例如/etc/ssl目录下。
进入Apache的网站管理目录:
cd /etc/apache2/sites-available/
将其中的default-ssl.conf复制一份:
cp default-ssl.conf yourdomain-ssl.conf
编辑复出来的配置文件:
sudo nano yourdomain-ssl.conf
在开头部分的ServerAdmin一行下面增加:
ServerName yourdomain
并将再下一行的DocumentRoot后面的路径修改为网站所在目录。
将SSLCertificateFile和SSLCertificateKeyFile后的路径分别修改为公钥和Key文件的路径。例如:
SSLCertificateFile /etc/ssl/bmzk/bmzk.pem
SSLCertificateKeyFile /etc/ssl/bmzk/bmzk.key
将<VirtualHost _default_:443>到</VirtualHost>之间的内容复制一份并粘贴到下面,并在“ServerName yourdomain”中的域名中增加www,其他不动。
Ctrl+X退出,输入y回车确认保存修改。
在sites-enabled下建立链接:
sudo ln -s /etc/apache2/sites-available/yourdomain-ssl.conf /etc/apache2/sites-enabled/yourdomain-ssl.conf
重启apache2:
sudo service apache2 restart
现在就可以用https访问网站了。为了实现通过http访问网站时自动跳转到https,编辑网站根目录下的.htaccess文件(如果没有就新建一个),在里面增加
RewriteEngine On
RewriteBase /RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]