手机版

在Apache环境下安装SSL证书,然后将http页面301重定向到https

2019-09-29 阅读 :
说明:本文所用服务器为阿里云ECS,系统Ubuntu16.04,Web服务器软件Apache2.4.18。

阿里云颁发的免费 DV SSL证书,下载证书For Apache的时候会有如下说明:

安装证书

文件说明:
证书文件214222927760867.pem,包含两段内容,请不要删除任何一段内容。
如果是证书系统创建的CSR,还包含:证书私钥文件214222927760867.key、证书公钥文件public.pem、证书链文件chain.pem。
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214222927760867.key;

( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf
( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:

# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3“`
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
#证书公钥配置
SSLCertificateFile cert/public.pem
#证书私钥配置
SSLCertificateKeyFile cert/214222927760867.key
#证书链配置,如果该属性开头有 ‘#’字符,请删除掉
SSLCertificateChainFile cert/chain.pem
( 4 ) 重启 Apache。

( 5 ) 通过 https 方式访问您的站点,测试站点证书的安装配置,如遇到证书不信任问题,请查看帮助视频。

现在开始照做:
以下编辑均使用FlashFXP软件打开相应文档操作,服务器通过控制台或Xshell 5进行连接控制。

1.打开Apache目录 /etc/apache2 并没有httpd.conf,只有apache2.conf,搜索里面也没有所谓的

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)“`
#Include conf/extra/httpd-ssl.conf
注释:找不到可能要安装openssl,用命令
sudo apt-get install openssl
安装即可

2.寻找整个Apache目录发现:
第一行可以在文件夹/etc/apache2/mods-available/中找到ssl.load
打开该文件后取消#LoadModule ssl_module modules/mod_ssl.so中的#即可启动。
3..第二行其实也就是/etc/apache2/mods-available/中的ssl.conf
打开文件后在其中通过搜索找到相应项目进行相应修改

添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on

4.启用相应设置,将以上配置文件设置软链到mods-enabled文件夹
1). 进入mods-available文件夹

cd /etc/apache2/mods-available/

2). 建立软链接(激活配置)

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

5.重启apache服务,测试是否有错误

sudo /etc/init.d/apache2 restart

该部分配置到此结束。

下面配置网站相应ssl,激活https 访问:
阿里官方说明后半段中有如下语句

证书公钥配置
SSLCertificateFile cert/public.pem
证书私钥配置
SSLCertificateKeyFile cert/214222927760867.key
证书链配置,如果该属性开头有 ‘#’字符,请删除掉
SSLCertificateChainFile cert/chain.pem

1.打开/etc/apache2/sites-available/文件夹可以发现有一个·default-ssl.conf·的文件,里面正是以上配置内容所在。

2.在/etc/apache2/下新建文件夹,命名为cert,此时将下载的证书文件214222927760867.zip解压并上传到/etc/apache2/cert文件夹下。

3.复制该文件并重命名为000-default-ssl.conf(最好与相应网站的配置文件default.conf对应命名-ssl)
4.打开复制好的文件,这里是000-default-ssl.conf,找到对应语并修改为

SSLCertificateFile /etc/apache2/cert/public.pem
SSLCertificateKeyFile /etc/apache2/cert/214222927760867.key
SSLCertificateChainFile /etc/apache2/cert/chain.pem

5.建立软链接(激活配置)

sudo ln -s /etc/apache2/etc/apache2/sites-available/000-default-ssl.conf /etc/apache2/sites-enabled/

6.重启apache服务,测试是否有错误

sudo /etc/init.d/apache2 restart

至https已经启用,浏览器输入https://域名查看是否生效。

备注:在我不知道这个文件是干什么的情况下已经胡乱配置过如下内容,不知道有没有用.

<VirtualHost 域名:443>
servername 域名
ServerAdmin webmaster@localhost
DocumentRoot /var/www/网站目录

以及

SSLEngine on

好了,重点来了

使用301重新定向将http定向到https
1.启用Module rewrite
打开/etc/apache2/mods-available/中rewrite.load文件,启用rewrite:即取消以下内容前面的#即可

LoadModule rewrite_module/usr/lib/apache2/modules/mod_rewrite.so

2.建立软连接,激活rewrite.load

sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/

3.在网站根目录下新建.htaccess文件,并写入以下内容

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

4.在Apache2.conf中找到如下片段,注意是/var/www/也就是站点目录,将AllowOverride None 改为All。
此步是说明:

AllowOverride是指确定允许存在于.htaccess文件中的指令类型,通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成“None”不允许任何Override(优先级)—百度百科

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted```
 </Directory>

5.好吧,又是重启apache,到此重新打开网站域名后自动跳转至SSL安全链接https://域名。

6.至此,配置ssl及定向https已经完成

作者:Thomajesty
本文标题:在Apache环境下安装SSL证书,然后将http页面301重定向到https - 服务器教程_服务器技术_服务器知识_vps教程
本文地址:https://www.helloaliyun.com/tutorial/1060.html

相关文章

  • 阿里云服务器ECS实例Linux操作系统须知

    阿里云服务器ECS实例Linux操作系统须知 不要修改Linux实例默认的/etc/issue文件内容。否则,根据实例创建的自定义镜像的系统发行版本无法被正确识别,使用该镜像创建的实例无法正常启动。 不要随意更改根目录所在分区下...

    2019-11-19 服务器教程
  • 阿里云服务器ECS实例Windows操作系统须知

    阿里云服务器ECS实例Windows操作系统须知 不要停止Windows系统自带的AliyunService服务或自带的shutdownmon.exe进程,停止后可能会影响控制台正常关机或者重启。 不要修改域控制器的hostname。 不建议从域控制器的虚拟...

    2019-11-19 服务器教程
  • 关于阿里云服务器ECS实例的操作须知

    为了保证阿里云服务器ECS实例的正常运行,在使用阿里云服务器ECS实例之前,请您务必认真阅读以下注意事项。操作须知 创建ECS实例后,您拥有实例的管理员权限,阿里云没有权限登录您的实例。 禁止使用ECS实例做流量穿透服务。...

    2019-11-19 服务器教程
  • 什么是可用区(Zone)?

    可用区(Zone)可用区是指在同一地域内,电力和网络互相独立的物理区域。同一可用区内实例之间的网络延时更小。在同一地域内可用区与可用区之间内网互通,可用区之间能做到故障隔离。是否将实例放在同一可用区内,主要取决于对...

    2019-11-18 服务器教程
  • 购买阿里云服务器在选择地域时需要考虑哪些因素?

    购买阿里云服务器在选择地域时,您需要考虑以下几个因素: 地理位置 请根据您以及您目标用户所在的地理位置选择地域。 中国大陆 一般情况下建议选择和您目标用户所在地域最为接近的数据中心,可以进一步提升用户访问速...

    2019-11-18 服务器教程
你可能感兴趣