准备:
- 阿里云云服务器
- 阿里云购买的域名(已备案、已解析
- 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配置成功,可以访问你得域名了!!
- 完毕,转载请注明出处,谢谢大家观看~~