在Apache2环境下安装SSL证书,利用301将http定向到https
说明:本文所用服务器为阿里云ECS,系统Ubuntu16.04,Web服务器软件Apache2.4.18,本人小白,通过各种文章及自己摸索总结出下文,仅作个人备忘。
阿里云颁发的免费 DV SSL证书,下载证书For Apache的时候会有如下说明:
安装证书
文件说明:
1.证书文件214222927760867.pem,包含两段内容,请不要删除任何一段内容。
2.如果是证书系统创建的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 ^(.IT之家) 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已经完成。
相关热词: 安装
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/fwq/8020.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
使用Cockpit方便地管理容器
时间:2020-12-29
-
linux系统上如何快速安装
时间:2020-12-29
-
如何在Linux VPS上定制自己
时间:2020-12-29
-
开启nginx和php-fpm的status状
时间:2020-12-29
-
采用DNSPOD解析API快速验证
时间:2020-12-29
-
如何在CentOS 7上安装Elast
时间:2020-12-29
-
.Net Core在Linux服务器上部署
时间:2020-12-29
-
如何用树莓派控制GOIO引脚
时间:2020-12-25
热门文章
-
利用可道云KodExplorer软件部署私有云盘和
时间:2020-12-22
-
Linux VPS/服务器一键检测硬件配置、节点下
时间:2020-12-22
-
采用DNSPOD解析API快速验证域名快速安装免
时间:2020-12-29
-
Linux系统下用iperf诊断网络端口是否有被过
时间:2020-12-22
-
在CentOS系统上安装GitLab并自定义域名访问
时间:2020-12-23
-
web3通过testrpc访问以太坊数据入门
时间:2020-12-24
-
容器环境中的代理模型
时间:2020-12-22
-
在linux下启动tomcat,并实时查看tomcat的控
时间:2020-12-23
-
使用Linux定时脚本更新服务器的git代码
时间:2020-12-24
-
.Net Core在Linux服务器上部署.NET框架教程
时间:2020-12-29
