启用HTTPS,并强制HTTP转向HTTPS

作者: Mr.Wang 分类: 其他 发布时间: 2018-03-01 19:31

1.首先要申请HTTPS证书,这里采用腾讯云的SSL证书服务

2.证书颁发后会邮件或者短信提示,在控制台中找到证书管理,查看并下载证书,解压后放到服务器相应的位置

3.使用CentOS服务器可以参考腾讯的安装指引

如果根据腾讯云文档,没有在httpd.conf中找到

LoadModule ssl_module modules/mod_ssl.so

conf目录下也没

httpd-ssl.conf

先把模块装上

yum install mod_ssl openssl

在conf下面找到ssl.conf,和httpd.conf的作用是一样的。

在ssl.conf中加载了mod_ssl模块(LoadModule ssl_module modules/mod_ssl.so

Apache的配置文件里面有一句 Include conf.d/*.conf,所以ssl.conf也就包含进来了

把刚刚申请的key按照官方文档配置,文件的路径填写自己存放证书的路径

其他按照指引做就可以

4.Ubuntu下Apache2配置HTTPS

这里参照http://blog.csdn.net/s502414680/article/details/70338457?utm_source=itdadao&utm_medium=referral的方法进行配置

首先ubuntu讲一下apache文件分布

– 默认站点    /var/www/
– 配置文件    /etc/apache2/
– 日志在        /var/log/apache/
– 启动脚本是   /etc/init.d/apache2

etc/apache2中的配置文件又有几个文件夹与文件

apache2.conf:Apache的主要配置文件,包含全局配置

envvars:Apache2环境变量设置

ports.conf:配置Apache监听的端口

mods-available:包含模块和模块配置文件(PS:不是所有的模块都有配置文件)

mods-enabled:持有/etc/apache2/mods-available目录下文件的链接,当该目录下有一个模块文件和其配置文件,那么Apache重启后该模块将生效

sites-available:这个目录包含Apache虚拟主机的配置文件。虚拟主机允许Apache配置多个站点并为每个站点配置不同的参数。后面下面配置的时候会配置80端口的http重定向为443的https

sites-enabled:持有/etc/apache2/sites-available目录下文件的链接。当Apache重启后,该目录中包含的站点将会被激活

安装open SSL

sudo apt-get install openssl

开启SSL模块

sudo a2enmod ssl

获取证书文件

1_root_bundle.crt
2_xxx.crt
3_xxx.key

配置HTTPS(SSL)

进入/etc/apache2/ports.conf 查看是否有

Listen 80
Listen 443

没有就添加上去

配置ssl虚拟站点

SSL安装完后,会在/etc/apache2/sites-available/目录下生成一个缺省的default-ssl.conf文件。

缺省的网页目录仍然是/var/www/。我们可以创建一个链接到site-enabled目录。

sudo ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/001-ssl

在/etc/apache2/sites-available/default-ssl.conf中找到

SSLCertificateFile,
SSLCertificateKeyFile,SSLCertificateChainFile

配置为

SSLCertificateFile   证书地址/2_xxx.crt
SSLCertificateKeyFile   证书地址/3_xxx.key
SSLCertificateChainFile   证书地址/1_root_bundle.crt

重启apache

sudo service apache2 restart

已经可以访问https了

设置http重定向为https

启动重定向
启动 rewrite mod

sudo a2enmod rewrite

设置http端口重定向

打开 /etc/apache2/sites-available/000-default.conf ,

在 <\VirtualHost *:80><\VirtualHost> 标签内随便一个地方加入以下三行

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

最后重启

sudo service apache2 restart

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

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