apache2 https化


  我在服务器上成功的搭建了LAMP环境,但是之后的ssl证书安装简直闹心,找了一个晚上的资料,都没有一个能成功的,第二天还是在谷歌上找了一些资料才整好的(不得不说IIS的证书安装真是太简便了)……

1.开启ssl

sudo a1enmod ssl  
sudo a2ensite default-ssl
#出现Enabling字样说明成功

补充:2017年4月27日,重装服务器,为ubuntu16.04 64位,但是使用命令sudo a1enmod ssl失败,但是使用sudo a2enmod ssl成功,记录一下

2.配置/etc/apache2/sites-enabled/default-ssl.conf

(如果没有的话从/sites-available里面复制过去)

 DocumentRoot /var/www#主目录修改,可选
 SSLCertificateFile      /etc/apache2/ssl/2_XXX.crt#服务器证书文件
 SSLCertificateKeyFile   /etc/apache2/ssl/3_XXX.key#服务器私钥文件
 SSLCACertificateFile /etc/apache2/ssl/1_XXX.crt#服务器的CA证书链

这里不介绍证书是怎么获得的,有免费的,有收费的,还有自己创建的,都可以…

另外,最好检查一下SSLEngine选项是否开启(使用命令find . -name 'SSLEngine'#位于apache2目录下)

3.检查配置

查看apache2/sites-enabled目录下是否存在default-ssl.conf,
查看apache2/mods-enabled目录下是否存在ssl.conf、ssl.load

如果存在,那就说明没问题了,重启apche应该就行了,如果不存在的话,从相应的available目录下复制进去。

4.查看效果

打开网址,去看一下效果。可能会存在提示不安全的情况,这可能是你的网站引用了不安全的http连接的css或者其他,修改为https或者更改apache配置即可,网上有很多,就不多介绍了

2017年4月24日00:11:40补充:配置 HTTPS 强制跳转
方法1:
打开 /etc/apache2/sites-available/000-default.conf,
在<VirtualHost *:80></VirtualHost>标签内随便一个地方加入以下三行

RewriteEngine on
RewriteCond  %{HTTPS} !=on
RewriteRule  ^(.*) https://%{SERVER_NAME}$1 [L,R]

强制跳转https配置完毕,保存退出。

方法2:在网站目录下配置.htaccess:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.xxxx.me/$1 [R,L]

我们在.HTACCESS文件添加上面脚本,对应的域名换成我们自己的,这样如果用HTTP访问网站会强制到HTTPS地址。这里还有一个问题,如果WWW和不带WWW的HTTPS地址是不跳转的,我们还是要统一用WWW格式的。

RewriteCond %{HTTP_HOST} ^xxxx.me [NC]RewriteRule ^(.*)$ http://www.xxxx.me/$1 [L,R=301]

我们可以再添加上面的脚本,然后可以强制用到WWW地址。

发表评论

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