location / {
index index.html index.php;
location / {
####以下为PHPCMS 伪静态化rewrite规则
rewrite ^(.*)-htm-(.*)$ $1.php?$2 last;
rewrite ^(.*)/simple/([a-z0-9\_] \.html)$ $1/simple/index.php?$2 last;
if (!-e $request_filename)
{
一、 安装SSL证书的环境
(温馨提示:安装证书前请先备份您需要修改的服务器配置文件)
1.1 SSl证书安装环境简介
安装windows server 2008 IIS7.0操作系统服务器一台,
web站点一个
SSL证书一张(备注:本指南使用s.wosign.com域名OV SSL证书进行操作)
1.2 网站环境要求
请确保站点是一个合法的外网可以访问的域名地址,可以正常通过
http://www.youdomain.com进行正常访问。
二、 SSL证书的导入
2.1 获取SSl证书
成功在景安申请证书后,会得到一个有密码的压缩包文件,输入证书密码后解压得到五个文件:for Apache、for IIS、for Ngnix、for Other Server,这个是证书的几种格式,解压for IIS压缩包,会得到一个www.xxx.com.pfx格式的证书,IIS7.0上需要用到pfx格式的证书。
Wosign颁发的证书已经不再自带pfx格式证书 需要我们手动进行合成
首先我们打开for Nginx压缩包 取出其中的证书 然后找到我们保存的key文件
打开地址https://www.zzqidc.com/ssl/sslTools 选择证书转换工具
注意:证书密码一定不要忘记.
上传证书和私钥输入两次密码然后点击转换证书格式进行转换
最后点击下载证书
2.2 导入SSl证书
开始 -〉运行 -〉MMC,启动控制台程序 -> 选择菜单“文件 -〉添加/删除管理单元”->列表中选择“证书”->点击“添加”-> 选择“计算机帐户” ->点击完成。在控制台的左侧显示证书树形列表,选择“个人”- “证书”,右键单击,选择“所有任务-〉导入”, 根据“证书导入向导”的提示,将.pfx格式文件导入,注意导入过程选择“根据证书内容自动选择存储区”。(注意导入过程中需要输入密码)导入成功后,刷新,可以看到如图1所示的证书信息
2.3 分配服务器证书
打开IIS7.0管理器面板,找到待部署证书的站点,点击“绑定”如图3
设置参数
选择“绑定”->“添加”->“类型选择https” ->“端口443” ->“ssl证书【导入的证书名称】” ->“确定”,SSL缺省端口为443端口,(请不要随便修改。如果您使用其他端口如:8443,则访问时必须输入:https://www.domain.com:8443)。如图4
2.4 测试是否安装成功
重启IIS7.0服务,在浏览器地址栏输入:https://www.yourdomain.com (申请证书的域名)测试您的SSL证书是否安装成功,如果成功,则浏览器下方会显示一个安全锁标志。请注意:如果您的网页中有不安全的元素,则会提供“是否显示不安全的内容”,赶紧修改网页,删除不安全的内容(外部Flash、CSS、Java Script和图片等)。
三、 SSL证书的备份
请保存好收到的证书压缩包文件及密码,以防丢失
四、 SSL证书的恢复
重复2.3操作即可。
在使用例如file_get_contents这样的函数读取https的资源的时候,遇到这个报错信息
首先确认加载了openssl模块 并且allow_url_fopen是打开状态
这种时候有两种方案
简单粗暴的跳过ssl认证
<?php $arrContextOptions=array( "ssl"=>array( "verify_peer"=>false, "verify_peer_name"=>false, ), ); $response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042 N 1050 W&outFields=*&outSR=102100&searchExtent=&f=json", false, stream_context_create($arrContextOptions)); echo $response; ?>
第一种方法属于比较粗暴的方法 直接放弃ssl认证,不建议这种方法。
1.前往ca证书下载地址下载下来证书
2.上传至服务器的php的可读目录
3.配置php.ini 中的openssl.cafile
[openssl]openssl.cafile=/***php可读目录***/cert.pem
4.重启php-fpm就可以了。
当前,不能向以下国家,网站或以下国家/地区代码顶级域(TLD)中的个人或企业实体颁发任何类型的安全证书:
受限制的国家/地区列表:
以下国家/地区受到美国出口限制法的限制,因此Sectigo无法为以下国家/地区的注册人颁发ssl证书
AF阿富汗
古巴古巴
厄立特里亚
GN几内亚
IR伊朗伊斯兰共和国
KP韩国,朝鲜民主主义人民共和国
LR利比里亚
北塞浦路斯
苏丹苏丹
SL塞拉利昂
SS南苏丹
SY阿拉伯叙利亚共和国
ZW津巴布韦
第一步:打开【php-openssl】选项
点击【其他选项菜单】按钮→选择【PHP扩展及设置】→选择【PHP扩展】→在【php-openssl】选项上打钩即可。
第二步:使SSL模块生效(需改任何文件时,一定要备份源文件,不要觉得自己很牛逼)
打开目录【phpStudy】→【Apache】→【conf】找到【httpd.conf】文件。打开该文件,修改2个地方,修改完成后,记得保存:
第一个:找到【LoadModule ssl_module modules/mod_ssl.so】这一行,如果前面有#,去掉#,如果没有,就不需要改动,保持不变即可。
第二个:找到【Include conf/extra/httpd-ssl.conf】这一行,如果前面有#,去掉#,如果没有,就不需要改动,保持不变即可。
第三步:复制SSL证书文件到指定目录
从任何网站申请的SSL证书都会包含3个文件:
1_root_bundle.crt (证书链文件)
2_www.domain.com_cert.crt(证书文件)
3_www.domain.com.key(私钥文件)
将这三个文件复制到指定目录,自己可以选择,我建议复制到该目录下
【phpStudy】→【Apache】→【conf】→【sssl】目录下。是【sssl】目录,需要新建的,原来没有的,【ssl】文件夹是原来就有的。看清楚了。
第四步:配置(关键的一步)
打开目录【phpStudy】→【Apache】→【conf】→【extra】找到【httpd-ssl.conf】文件。打开该文件。
该文件下的内容大部分都是被注释了的。就是前面都带着#。你可以全部删除掉。只需要把我下面配置的代码,复制进去就ok。
如果你的【phpStudy】也是安装在c盘的根目录下,可以直接复制,如果不是,记得修改路径。
现在假设我们需要配置的域名是:zzqidc.com。只是演示用,你复制的时候,记得修改成你自己的域名
代码开始:
Listen 443
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:c:/phpStudy/Apache/logs/ssl_scache(512000)"
#这一行就有一个路径,记得修改成你的
SSLSessionCacheTimeout 300
DocumentRoot "C:phpStudyWWW"
#这一行就有一个路径,记得修改成你的
ServerName www.vpskt.com:443
ServerAdmin admin@example.com
ErrorLog "c:/phpStudy/Apache/logs/error.log"
#这一行就有一个路径,记得修改成你的
TransferLog "c:/phpStudy/Apache/logs/access.log"
#这一行就有一个路径,记得修改成你的
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4 RSA: HIGH: MEDIUM: LOW: SSLv2: EXP: eNULL
#下面三行是配置证书文件,注意修改路径和对应文件名称,别搞混了
SSLCertificateFile "C:/phpStudy/Apache/conf/sssl/ssldun.crt"
SSLCertificateKeyFile "C:/phpStudy/Apache/conf/sssl/ssldun.key"
SSLCertificateChainFile "C:/phpStudy/Apache/conf/sssl/CABundle.crt"
#网上的很多教程是不配置这个证书链文件的,如果不配置,微信浏览器打开是白板,什么都看不见,其他浏览器访问会提示不安全链接。所以必须要配置
<filesmatch ".(cgi|shtml|phtml|php)$"="">
SSLOptions StdEnvVars
#这一行就有一个路径,记得修改成你的
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
BrowserMatch ".*MSIE.*"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
CustomLog "C:/phpStudy/Apache/logs/ssl_request.log"
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
配置代码结束。
第五步:重新启动apache即可生效