Apache配置SSL证书实现加密访问

  1. 首先,确保你的Apache编译了SSL模块,这是支持SSL证书必要的条件(如果没有,请编译,【打开phpstudy】》【其他选项菜单】》【PHP扩展】》【php-openssl】前面勾选上)。

  2. 2

    在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。

  3. 3

    打开 Apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉前面的“#”注释符,使得SSL模块生效(如果该模块已去掉注释,请不用操作)。

  4. 4

    接着搜索以下内容:【Include conf/vhosts.conf】,在其下面增加一条引用内容:【Include conf/vhostssl.conf】,如下图所示

  5. 5

    Apache 安装目录下 conf 文件夹中创建一个vhostssl.conf配置文件。可以复制httpd.conf文件另存为vhostssl.conf,按照80的配置,另起一个VirtualHost443,vhostssl.conf文件中的所有内容如下所示:

    Listen 443

    <VirtualHost *:443>

    DocumentRoot “D:\WWW\WEBMULU”

    ServerName www.example.com

    ServerAlias example.com

    SSLEngine on

    SSLProtocol TLSv1 TLSv1.1 TLSv1.2

    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

    SSLCertificateFile “D:\phpStudy\Apache\cert\public.pem”

    SSLCertificateKeyFile “D:\phpStudy\Apache\cert\21564852664745.key”

    SSLCertificateChainFile “D:\phpStudy\Apache\cert\chain.pem”

    <Directory “D:\WWW\WEBMULU”>

    Options +Indexes +FollowSymLinks +ExecCGI

    AllowOverride All

    Order allow,deny

    Allow from all

    Require all granted

    </Directory>

    </VirtualHost>

  6. 6

    注意:其中的域名信息替换成所申请SSL证书绑定的域名,SSLCipherSuite、SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile,结合所申请的SSL证书给的配置信息与自己所创建的cert证书目录来配置;vhostssl.conf文件名没有限制要求,可以根据自己的想要的重新命名,不过一定要跟httpd.conf 文件中引用的文件名称一样!

  7. 7

    重启apache(有可能报错,看一下443端口是否被防火墙拦截或被占用);Apache正常重启后,在浏览器里面输入带有https的网址就能看到安全锁出来啦;最后备份好您的SSL证书!

    END

HTTP301重定向到HTTPS

  1. 配置完SSL证书,我们需要进行站点301重定向,将http的地址强制跳转到https地址,Apache环境下,在站点根目录添加.htaccess文件,如图所示

  2. 在.htaccess文件中添加以下内容:

    RewriteEngine onRewriteBase /RewriteCond %{SERVER_PORT} !^443$RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

    然后保存文件,并将文件上传到网站根目录,如图所示

  3. 3

    最后,在浏览器地址栏里输入相应的网址,看看网址是不是跳转到HTTPS协议下面!

发布了10 篇原创文章 · 获赞 1 · 访问量 5239

猜你喜欢

转载自blog.csdn.net/qq_27702329/article/details/83753315