×

Linux PHP Html Raspberry Pi

在Apache2环境下安装SSL证书,利用301将http定向到https

Kalet Kalet 发表于2019-08-14 19:25:55 浏览585 评论0

抢沙发发表评论

安装证书


文件说明:

证书文件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已经完成。


--------------------- 

版权声明:本文为CSDN博主「Thomajesty」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/thomajesty/article/details/77171544


群贤毕至

访客