返回首页DA系统C#IDE文件同步服务屏保 今天是: 2026-05-05    "立夏"  夏季的第一个节气,表示盛夏时节的正式开始

搜索
热搜: linux 技术
Hi~登录注册
查看: 1961|回复: 0

[原创] 【原创】Apache原有基础上部署https

[复制链接]
发表于 2020-12-28 17:18:11 | 显示全部楼层 |阅读模式

少侠不来段修仙之旅吗~

您需要 登录 才可以下载或查看,没有帐号?注册成为修仙之旅的少年~

x
本帖最后由 da11 于 2020-12-28 18:22 编辑

Apache原有基础上部署https



1.获取证书(已有证书可忽略)

      在这里我选择了腾讯云免费证书。https://buy.cloud.tencent.com/ssl


2.下载证书(已有证书可忽略

      腾讯云的证书指引https://cloud.tencent.com/document/product/400/4142

      根据各CA颁发机构链接下载相应中间件的证书。



3.在服务器上部署证书

      #以下Apache默认配置文件路径为:/etc/httpd/    网站根目录路径为:/var/www/html/   

      3.1 使用yum安装https支持模块(使用rpm -qa | grep mod_ssl  确认是否安装)

               yum -y install mod_ssl.x86_64



      3.2 创建证书存放路径(如有可跳过)

               mkdir /etc/httpd/ssl/



      3.3 将证书复制至此路径

               cp .../*  /etc/httpd/ssl/



               注意,以下为证书文件各个文件的说明

               已在 SSL 证书管理控制台 中下载并解压缩 cloud.tencent.com 证书文件包到本地目录。
               解压缩后,可获得相关类型的证书文件。 其中包含 Apache 文件夹和 CSR 文件:
               文件夹名称:Apache
               文件夹内容:
               1_root_bundle.crt 证书文件
               2_cloud.tencent.com.crt 证书文件
               3_cloud.tencent.com.key 私钥文件

               CSR 文件内容: cloud.tencent.com.csr 文件
               说明:CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。




      3.4 查看httpd.conf配置文件

               vim /etc/httpd/conf/httpd.conf



               找到 Include conf.modules.d/*.conf(用于加载配置 SSL 的配置目录)配置语句,并确认该配置语句未被注释。

               若已注释,请去掉首行的注释符号(#),保存配置文件。



      3.5 查看/etc/httpd/conf.modules.d 目录下的 00-ssl.conf 配置文件

                vim /etc/httpd/conf.modules.d/00-ssl.conf



                找到 LoadModule ssl_module modules/mod_ssl.so(用于加载 SSL 模块)配置语句,并确认该配置语句未被注释。

                若已注释,请去掉首行的注释符号(#),保存配置文件。

                注意,没有此文件请查看3.1是否安装ssl支持模块。



      3.6 编辑/etc/httpd/conf.d 目录下的ssl.conf 配置文件

                vim /etc/httpd/conf.d/ssl.conf



                 修改以下内容:

                <VirtualHost 0.0.0.0:443>
                    #网页根目录

                    DocumentRoot "/var/www/html"
                    #填写证书名称
                    ServerName cloud.tencent.com #域名
                    #启用 SSL 功能
                    SSLEngine on
                    #证书文件的路径
                    SSLCertificateFile /etc/httpd/ssl/2_cloud.tencent.com.crt
                    #私钥文件的路径
                    SSLCertificateKeyFile /etc/httpd/ssl/3_cloud.tencent.com.key
                    #证书链文件的路径
                    SSLCertificateChainFile /etc/httpd/ssl/1_root_bundle.crt
               </VirtualHost>



      3.7 重启Apache服务
               systemctl restart httpd


      3.8 使用https访问验证

               https://域名    即可使用https访问


4.禁用80端口,转发https 443端口
      4.1 查看httpd.conf配置文件
               vim /etc/httpd/conf/httpd.conf
                    <Directory "/var/www/html"> 段中,添加以下转发配置
                RewriteEngine on
                RewriteCond %{SERVER_PORT} !^443$
                RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
                多项目(多个网站根目录)转发参考地址:https://www.cnblogs.com/yehuisir/p/10280468.html

      4.2 验证
               http://域名    访问的时候也会自动跳转成https访问。










发表于 2021-9-7 15:10:54 | 显示全部楼层
在经过实际操作后,已经配置好ssl.conf的情况下,http.conf配置文件再配置http转发至https的配置,不会生效,这时,需要在ssl.conf的配置文件中,添加如下内容:

#
# When we also provide SSL we have to listen to the
# the HTTPS port in addition.
#
Listen 443 https
Listen 80 http    #新添加内容,增加监听端口为80


<VirtualHost 0.0.0.0:80>    #直接添加新的虚拟主机,端口为80

DocumentRoot "/var/www/html"
ServerName www.xxx.cn   

<Directory "/var/www/html">

Order allow,deny
allow from all

</Directory>


#转发配置,http跳转至https,如果需要关闭,RewriteEngine调整为off即可
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)$ https://www.xxx.cn [R=301,L]

</VirtualHost>







回复 支持 反对

使用道具 举报

游客
回复
*滑块验证:

DA论坛飞机票来了~
快速回复 返回顶部 返回列表