版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36116978/article/details/80093542
准备:
- 阿里云云服务器
- 阿里云购买的域名(已备案、已解析
- phpstudy:php7.1.13 nts+Apache
- ssl证书申请(我用的是阿里云上申请的证书,好像是免费用一年吧)
步骤:
- 申请证书(这个很多方式,阿里云的服务器建议直接从阿里云上申请,教程自行百度)
- 申请通过审核后,下载相应版本的证书(我的是apache),
- 上下载完毕后上传证书到服务区:具体做法:在apache目录下新建cert,将证书放在里面
(证书目录)
- 开始配置phpstudy~
- 开启服务器443端口(https默认443端口访问)
阿里云控制台=》云计算基础服务=》云服务器ECS=》网络和安全=》安全组,没有安全组的创建一个安全组,有的直接选择相应安全组,点击配置规则=》添加安全组规则(把80端口和443端口添加进安全组,授权对象填0.0.0.0/0) - 准备工作:开启php的openssl模块,在phpstudy的“php扩展及设置”里面开启即可
- 打开apache目录下httpd.conf文件,进行如下修改
-
#修改httpd.conf文件,查找下面的两行,分别取消注释
-
LoadModule ssl_module modules/mod_ssl.so
-
Include conf/extra/httpd-ssl.conf
-
#去掉上面三行前的"#"
-
保存退出
- 打开Apache\conf\extra\httpd-ssl.conf文件,修改httpd-ssl.conf文件,保存退出
-
在..\Apache\conf\extra目录下,打开httpd-ssl.conf文件(注:先备份一遍,以免出错,因为这个文件的错误我重装phpstuy不下10回)
-
在文件里定位到 Listen 443 这句话这里,把 从这句话到这个文件结尾的文本 全部注释掉或者删除掉,替换成以下代码
-
Listen 443 //这里强调一下,如果Listen 443这句代码在这个文件里重复出现了,即重复监听,apache会报错,然后不能启动
-
SSLStrictSNIVHostCheck off
-
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
-
SSLProtocol all -SSLv2 -SSLv3
-
<VirtualHost *:443>
-
#这里的路径设置你的网站根目录
-
DocumentRoot "C:\phpStudy\PHPTutorial\WWW"
-
#这里xxxxx.com替换成你的域名
-
ServerName www.xxxxx.com
-
#这里xxxxx.com替换成你的域名
-
ServerAlias xxxxx.com
-
#这里的路径设置你的网站根目录
-
<Directory "C:\phpStudy\PHPTutorial\WWW">
-
Options FollowSymLinks ExecCGI
-
AllowOverride All
-
Order allow,deny
-
Allow from all
-
Require all granted
-
</Directory>
-
SSLEngine on
-
#你的公钥文件
-
SSLCertificateFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.crt"
-
#你的私钥文件(有的机构命名为private或者以你的域名为文件名命名)
-
SSLCertificateKeyFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.key"
-
#证书链文件(有的机构命名为CA) 我尝试过注释掉这个选项,结果apache不能运行
-
SSLCertificateChainFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/chain.crt"
-
</VirtualHost>
二级域名该这样配::
<VirtualHost *:443>
ServerName ztsj.xxx.net.cn
ServerAlias ztsj.xxx.net.cn
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "C:\phpStudy\PHPTutorial\Apache\conf\ssl\cert\2_ztsj.taoying.net.cn.crt"
SSLCertificateKeyFile "C:\phpStudy\PHPTutorial\Apache\conf\ssl\cert\3_ztsj.taoying.net.cn.key"
SSLCertificateChainFile "C:\phpStudy\PHPTutorial\Apache\conf\ssl\cert\1_root_bundle.crt"
DocumentRoot "C:\phpStudy\PHPTutorial\WWW\ztsj"
<Directory />
Options -Indexes -FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
- 重启apache,看看能不能正常启动,如果有异常,尝试把第4步中httpd-ssl.conf代码恢复注释(把#重新加上去,保存退出),再次重启apache,如果此时能够正常启动,则说明httpd-ssl.conf文件中有错误(是不是重复监听了?证书路径对不对?证书是否有效?),请认真检查,直到能够正常启动apache
- 启动浏览器检查是否可以访问localhost 及你的域名,并且域名头部标志为https。如果不能正常访问,请根据以上步骤重新检查。SSL配置成功,能够使用https访问你的域名了!
- ssl配置成功,可以访问你得域名了!!
- 完毕,转载请注明出处,谢谢大家观看~~