这几天申请了免费的SSL证书,经过几个小时的努力,本站成功转移到https。

本站运行在apache2(Ubuntu)上,首先要修改服务器配置使其支持ssl。在网上搜索到的大部分教程都不能解决这个问题,因为博主根本找不到他们说的配置文件,也许这是个假的服务器。执行以下命令,加载相应的模块。这些模块在安装的时候已经在了,现在只需要做一个软链接,告诉服务器在启动的时候加载即可。

cd /etc/apache2/mods-enabled
ln -s ../mods-available/ssl.conf ssl.conf
ln -s ../mods-available/ssl.load ssl.load
ln -s ../mods-available/socache_shmcb.load socache_shmcb.load

然后修改网站的配置文件,在VirtualHost里配置证书的路径,配置文件在/etc/apache2/sites-enabled/,这里的文件其实也是/etc/apache2/sites-available/里文件的软链接,真实的文件应当放到后者里。

<VirtualHost *:443>
    # 其它配置
    # ...
    # SSL配置
    SSLEngine on
    SSLCertificateFile /path/to/your/crt/file
    SSLCertificateKeyFile /path/to/your/key/file
    SSLCertificateChainFile /path/to/your/chain/file
</VirtualHost>

然后将http访问定向到https,防止以前的链接失效。

<VirtualHost *:80>
    # 其它配置
    DocumentRoot /path/to/tmp # 找一个空文件夹
    <Directory /path/to/tmp>
        RewriteEngine on
        RewriteBase /
        RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L]
    </Directory>
</VirtualHost>

最后,重启apache生效。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注