《Apache+PHP配置HTTPS(Windows-Server-2016-x64)》由会员分享,可在线阅读,更多相关《Apache+PHP配置HTTPS(Windows-Server-2016-x64)(20页珍藏版)》请在金锄头文库上搜索。
1、下载地址PHP:PHP: http:/ 选择 x64 Thread Safe,Zip 格式Apache:Apache: https:/ https:/aka.ms/vs/15/release/VC_redist.x64.exe(VC 库,下载完后直接双击安装)存储结构C:NJ Apache PHP MySQL Web WordPressPHP1. 打开 PHP 目录下的“php.ini-production“文件,另存为“ php.ini“。2. 修改插件目录(搜索关键词: extension_dir) extension_dir = “C:NJPHPext“ApacheP:P: 每个需要编写
2、的配置文件,在操作前,都先将该配置文件内的所有每个需要编写的配置文件,在操作前,都先将该配置文件内的所有“ “ c:/Apache24“c:/Apache24“替换为替换为“ “ C:/NJ/Apache“C:/NJ/Apache“1. 打开“ C:NJApacheconfhttpd.conf“,修改参数“ServerName“、“ServerAdmin“。 (若没有注册ServerName 处域名可填写 IP,若填写局域网 IP 则只有局域网用户可访问。)2. 修改参数“DocumentRoot“(网站的根目录) DocumentRoot “C:/NJ/Web“3.找到 LoadModule
3、 区域,添加如下信息:(注意查看 PHP 目录下的 dll 文件版本)LoadModule php7_module C:NJPHPphp7apache2_4.dll PHPIniDir “C:NJPHP“SetHandler application/x-httpd-php4. 修改默认检索 index.html 为 index.php。 (搜索关键词:DirectoryIndex)5. 管理员身份打开 CMD,cd 至 bin 目录:cd C:NJApachebin 键入命令检测配置文件:httpd.exe -t 如果报错,请百度错误信息。键入命令安装服务:httpd.exe -k insta
4、ll -n Apache6. 打开控制面板系统和安全Windows 防火墙允许应用通过 Windows 防火墙,点击允许其他应 用,添加 bin 目录下的 httpd.exe7. 打开“ C:NJApachebin ApacheMonitor.exe“程序,运行服务。8. 在“C:NJWeb“目录下新建文件“index.php“并写入如下内容9. 打开浏览器,输入 http:/localhost/,查看是否正常显示 PHP 版本信息。Certbot 证书申请官网: https:/certbot.eff.org/官方不支持 Windows 系统,网上可能有第三方工具,可以尝试,但不建议(出于安全
5、考虑)。 所以下面我选择在 Debian 上进行证书申请,申请完后,将证书文件提取出来,拷贝至 Windows Server 服务器。 (其他 Linux 系统流程类似,具体指令可以在 Certbot 官网首页选择对应系统,查 看教程参考) 采用这种方法是非常非常非常蛋疼的,因为证书只有三个月,到期后,只有 Linux 系统下才能自动 续期,就是说又需要弄台 Linux 去重新弄一遍证书。 所以此小结内容仅供参考学习(娱乐),有需求的可以去搜索其他证书资源。Debian 9.0 64 位1. 进入 Debian,更新系统及软件(可以跳过) apt-get update & apt-get up
6、grade一路按“Y“遇到列表选项,就选第一个“install the package maintainers version“2. 按照 Certbot 官网的说明输入指令 sudo apt-get install python-certbot-apache -t stretch-backports如果报错上述错误,则输入下列指令 sudo apt-get install python-certbot-apache3. 在浏览器输入你的服务器地址,查看 Apache 是否成功启动。从页面中,可以获得网页根目录是“/var/www/html“。等会验证时需要填写。4. 按照 Certbot 官
7、网的说明输入指令 sudo certbot -authenticator webroot -installer apache填写证书相关信息选择许可方式5. 输入下列指令(文件地址及文件名来自上面截图中) cat /etc/apache2/sites-available/000-default-le-ssl.conf6. 将证书复制到网站根目录,方便下载 cp /etc/letsencrypt/live/ /var/www/html/7. 用浏览器或下载工具下载证书文件。 下载地址格式为:“http:/服务器域名或 IP 地址/fullchain.pem“这两个.pem 文件就是证书文件,可以
8、直接拖到 Apache 那使用。如果非常非常非常.crt 文件,那就 继续看吧。1. 打开腾讯云控制台(没错,你需要一个腾讯云账号,并且完成实名认证!)2. 点击“上传证书“,复制“fullchain.pen“内的所有内容到“证书“栏,复制“privkey.pem“内的所有 内容到“私钥“栏,点击“上传“3. 点击“下载“4. 下载下来的 Zip 压缩包内包含三个文件夹,分别包含 Apache、IIS、Nginx 所对应的证书格式SSL1. 将得到的证书文件复制到“ C:NJApacheconf“2. 修改配置文件“ C:NJApacheconfhttpd.conf“ 找到 LoadModul
9、e 区域,加载下列模块:(去掉行首的#符号) LoadModule http2_module modules/mod_http2.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule ssl_module modules/mod_ssl.so加载下列配置:(去掉行首的#符号) # Secure (SSL/TLS) connections Include conf/extra/httpd-ssl.conf
10、保存3. 修改配置文件“ C:NJApacheconfextrahttpd-ssl.conf“ 记得替换字符串。/*这一部分操作属我瞎想后实施的,无法证明其合理性。实施此操作后并未使 SSL 配置失败 */ 去掉下列两行行首的“#“符号(注意,是含有“SSLv3“的。 。 。 。 。 。 。含“MD5“的默认行首没有“#“符 号,不用修改) SSLCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA SSLProxyCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA在下列两行中,增加“-SSLv2“/*但,不实施此操作,不确定是否会使 SSL 配置失败
11、。 (猜测不会)*/ /*事实证明上述操作并没有什么卵用,应该是缺少其他配置内容*/ 修改网站相关参数 DocumentRoot “C:/NJ/Web“#网站根目录,修改成 Web 文件夹 ServerName #域名 ServerAlias #域名别名 ServerAdmin A#联系邮箱 ErrorLog “C:/NJ/Apache/logs/error.log“#日志TransferLog “C:/NJ/Apache/logs/access.log“#日志修改证书参数 SSLCertificateFile “C:/NJ/Apache/conf/ fullchain.pem“ SSLCertificateKeyFile “C:/NJ/Apache/conf/ privkey.pem“保存 重启 Apache 服务,打开网页检测。如果需要自动将 http 跳转到 https,则打开文件“ C:/NJ/Apache/conf/httpd.conf“,在 ServerName 下方添加下列代码 RewriteEngine on RewriteCond %SERVER_PORT !443$ RewriteRule (.*)?$ https:/%SERVER_NAME$1 L,R保存,重启 Apache 服务。