apache2.4配置https

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache2.4配置https相关的知识,希望对你有一定的参考价值。

1、获取证书
1.1 openssl生成SSL证书(自行百度)
1.2 新浪云,腾讯云,阿里云等等都有提供免费的SSL证书


2、证书安装(以腾讯云提供SSL为例)
编辑Apache根目录下 conf/httpd.conf 文件,
找到 #LoadModule ssl_module modules/mod_ssl.so#Include conf/extra/httpd-ssl.conf,去掉前面的#号注释;
编辑Apache根目录下 conf/extra/httpd-ssl.conf 文件,修改如下内容:
<VirtualHost *:443>
    DocumentRoot "/var/www/html"
    ServerName www.domain.com:443
    SSLEngine on
    SSLCertificateFile /usr/local/apache/conf/2_www.domain.com_cert.crt
    SSLCertificateKeyFile /usr/local/apache/conf/3_www.domain.com.key
    SSLCertificateChainFile /usr/local/apache/conf/1_root_bundle.crt
</VirtualHost>
配置完成后,重新启动 Apache 就可以使用https://www.domain.com来访问了。
注:
配置文件参数
说明
SSLEngine on 启用SSL功能
SSLCertificateFile 证书文件
SSLCertificateKeyFile 私钥文件
SSLCertificateChainFile

证书链文件










3、apache配置重定向
在.htaccess文件中加入如下代码:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
ps:如果项目使用了.htaccess隐藏了index.php(例如tp3.2),可在.htaccess文件中加入如下代码:
<IfModule mod_rewrite.c>
RewriteEngine On RewriteCond
%{HTTPS} off RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
</IfModule>
也可以利用php做https的跳转:
<?php if ($_SERVER["HTTPS"] <> "on")
    {
    $xredir="https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];

    header("Location: ".$xredir);
    }
?>
然后伪静态就正常写去掉index.php的功能:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
配置完成后,http就可以重定向到https了。


4、遇到到问题
4.1 外网443端口被防火墙关闭。
4.2 在windows Server 2012服务器上配置httpd-ssl.conf时VirtualHost *:443 * 号使用域名出错,这里建议用*/ip
































以上是关于apache2.4配置https的主要内容,如果未能解决你的问题,请参考以下文章

apache2.4.18外部访问(局域网访问)配置修改

Apache2.4.34 + php 7.28 + MySQL8.0.12 安装及配置

apache2.4配置weblogic12c集群(linux)

php5.6+apache2.4环境配置

PHP5.6.19+Apache2.4.18环境配置

如何在 Ubuntu + Apache2.4 + mod_wsgi 上为 Ansible 配置 ARA?