Apache配置SSL证书以及http(80)永久重定向跳转https(443)的方法

原创 野人  2022-03-09 09:01  阅读 62 次

不得不说,上个SSL,我都快写了7 8篇文章了,而且我觉得是有必要的,这样才能讲的更清楚点。

还有一点,如果你站点也是跟本站一样,使用的是虚拟类型的空间或者主机,可以参考这篇文章《给衡天主机的虚拟主机配置安装添加SSL证书教程来了。》,因为大部分的虚拟空间/主机都是有快捷入口的。

而对于买的是云主机/轻量服务器/服务器这些的,那可以继续往下看了。

首要条件(默认都已准备好)

已有SSL证书,并讲证书下载到本地已备使用。

您的Apache服务器上已经开启了443端口(HTTPS服务的默认端口)。

您的Apache服务器上已安装了mod_ssl.so模块(启用SSL功能)。

操作步骤

1、找到Apache的安装目录,并在该目录下创建cert目录,并将SSL证书的所有相关文件上传到该cert目录中。

2、开启SSL功能,打开Apache安装目录下conf文件夹的httpd.conf文件,找到以下内容并去掉#

#LoadModule ssl_module modules/mod_ssl.so  #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。
#Include conf/extra/httpd-ssl.conf  #删除行首的配置语句注释符号“#”。    

3、打开Apache安装目录下conf/extra/httpd-ssl.conf文件 (也可能是conf.d/ssl.conf,这与操作系统及安装方式有关)。

<VirtualHost *:443>     
    ServerName   #修改为申请证书时绑定的域名www.YourDomainName1.com。                    
    DocumentRoot  /data/www/hbappserver/public          
    SSLEngine on   
    SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 修改加密套件。
    SSLHonorCipherOrder on
    SSLCertificateFile cert/domain name1_public.crt   # 将domain name1_public.crt替换成您证书文件名。
    SSLCertificateKeyFile cert/domain name1.key   # 将domain name1.key替换成您证书的密钥文件名。
    SSLCertificateChainFile cert/domain name1_chain.crt  # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。
</VirtualHost>

#如果证书包含多个域名,复制以上参数,并将ServerName修改为第二个域名。 
<VirtualHost *:443>     
    ServerName   #修改为申请证书时绑定的第二个域名www.YourDomainName2.com。                    
    DocumentRoot  /data/www/hbappserver/public          
    SSLEngine on   
    SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 修改加密套件。
    SSLHonorCipherOrder on
    SSLCertificateFile cert/domain name2_public.crt   # 将domain name2替换成您申请证书时的第二个域名。
    SSLCertificateKeyFile cert/domain name2.key   # 将domain name2替换成您申请证书时的第二个域名。
    SSLCertificateChainFile cert/domain name2_chain.crt  # 将domain name2替换成您申请证书时的第二个域名;证书链开头如果有#字符,请删除。
</VirtualHost>

4、可选,修改httpd.conf文件,设置HTTP请求自动跳转HTTPS,找到Apache安装目录下的httpd.conf文件中的<VirtualHost *:80> </VirtualHost>中间,添加以下301重定向跳转代码。

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

以上的跳转代码并不是唯一的,有很多种的方法都可以实现,只不过上面只列举了其中的一种,更多的大家可以看这里,https://www.kx521.com/post/19.html

5、重启Apache服务器使SSL配置生效。

apachectl -k stop
apachectl -k start

参考文档

在Apache服务器上安装SSL证书

Apache + mod_ssl.so APACHE安装SSL证书 https配置安装教程

部署Apache服务器安装SSL证书

本文地址:https://www.yerenwz.com/5863.html
版权声明:本文为原创文章,版权归 野人 所有,欢迎分享本文,转载请保留出处!
PREVIOUS:已经是最后一篇了
NEXT:已经是最新一篇了
相关文章 关键词:

发表评论