ubuntu16 apache 配置https 腾讯云
HTTP协议以明文方式发送内容,不提供任何方式的数据加密
HTTPS(超文本传输安全协议)是在HTTP上加了SSL层,加入SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
云服务器这里我以腾讯云的为例 ubuntu16.04LTS
要配置HTTPS需要SSL证书,而SSL证书是需要域名的,因此我们需要在腾讯云上购买域名,注意购买后要尽快完成备案(实名),否则域名会处于Serverhold(暂停解析)状态,无法正常使用。具体的步骤腾讯云申请购买域名部分有很详细的文档说明,有一步需要注意,域名解析列表按照官方文档配置外还需要增加一条
主机记录选www或者其它(根据自己需要),记录值要填上自己的服务器公网ip,否则仅靠文档的配置是无法完成解析的
配置证书
完成备案后,在SSL证书板块进行证书的下载,里面有几个文件夹的,我们选择apache文件夹里的几个证书文件上传到自己的服务器中,我上传到的目录是 /etc/apache2/ssl-cert , ssl-cert这个文件夹是我自己新建的,可以自己自定义目录
/etc/apache2/sites-enabled/000-default.conf是/etc/apahche2/sites-available/000-default.conf的软链接,现在我们要配置SSL证书,需要配置/etc/apache2/sites-available/default-ssl.conf这个文件,我们先要创建一个软链接(不创建的话应该是会配置不成功的)
ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf
我们直接修改000-default-ssl.conf这个文件
ServerAdmin 把原来的换成自己的邮箱(具体原因还需再查)
ServerName这一行需要新增,写上自己的域名
DocumentRoot 根据自己的情况写
SSLEngine 默认应该是on的,如果不是则改成on
看到下面的框框,原本只有上面两行,需要把原来两行后面的文件位置换成自定义的路径,第三行需要自己新增
SSLCertificateFile 证书文件 对应下载的证书文件的2_xxx.crt
SSLCertificateKeyFile 私钥文件 对应下载的证书文件的3_xxx.key
SSLCertificateChainFile 证书链文件 对应下载的证书文件的1_root_bundle.crt
然后保存退出
加载ssl模块
sudo a2enmod ssl #加载模块
sudo service apache2 restart
强制使用HTTPS
为了使所有的内容链接都请求到HTTPS上,要进行配置
打开/etc/apache2/sites-available/000-default.conf文件进行配置
在<VirtualHost*:80>标签内最下面增加3行
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
保存退出
重启apache
HTTPS的配置就完成了
在浏览器输入域名就可以看到使用的是HTTPS协议