- A+
环境
UPUPW的5.6版本UPUPW_AP5.6-1510-64bit
windows server 2008 R2 开放端口 80 443 21
因为要做小程序所有就需要配置拥有https 的域名了,其实我到现在还是没有太明白这个到底有什么特别的含义。
废话不多说了 直接进入主题
第一步 在登录阿里云 如图
第二步按下图选择的来购买
第三步下载APPACHE证书
第四步上传压缩包到 服务器 apache 根目录的 conf/key 下边 如果没有此文件夹 则新建一个文件夹名字为 key的
第五步配置apache 包含 httpd.conf vhosts.conf ssl.conf 这三个配置文件
httpd.conf 主要是 开启 httpd-vhosts.conf 和httpd-ssl.conf 同时还必须开启 mod_ssl.so mod_socache_shmcb.so 扩展
注意在第三步购买和配置SSL证书时正常的都可以选择默认的但是也可以自己生成证书再上传(具体生成 私钥和证书流程附在文章下方)
httpd-vhosts.conf 配置虚拟主机
<VirtualHost *:80>
DocumentRoot "D:/web/UPUPW_AP5.6_64/htdocs"
ServerName 127.0.0.1:80
ServerAlias localhost
ServerAdmin webmaster@localhost
DirectoryIndex index.html index.htm index.php default.php app.php u.php
ErrorLog logs/localhost_error.log
CustomLog logs/localhost_access_%Y%m%d.log comonvhost
php_admin_value open_basedir "D:\web\UPUPW_AP5.6_64\htdocs\;D:\web\UPUPW_AP5.6_64\memcached\;D:\web\UPUPW_AP5.6_64\phpmyadmin\;D:\web\UPUPW_AP5.6_64\temp\;C:\Windows\Temp\"
<Directory "D:/web/UPUPW_AP5.6_64/htdocs">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<LocationMatch "/(inc)/(.*)$">
Require all denied
</LocationMatch>
<LocationMatch "/(attachment|attachments|uploadfiles|avatar)/(.*).(php|php5|phps|asp|aspx|jsp)$">
Require all denied
</LocationMatch>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/web/UPUPW_AP5.6_64/vhosts/www.wh2013.net"
ServerName www.wh2013.net:80
ServerAlias wh2013.net
ServerAdmin webmaster@www.wh2013.net
DirectoryIndex index.html index.htm index.php default.php app.php u.php
ErrorLog logs/www.wh2013.net-error.log
CustomLog logs/www.wh2013.net-access_%Y%m%d.log comonvhost
php_admin_value open_basedir "D:\web\UPUPW_AP5.6_64\vhosts\www.wh2013.net\;D:\web\UPUPW_AP5.6_64\memcached\;D:\web\UPUPW_AP5.6_64\phpmyadmin\;D:\web\UPUPW_AP5.6_64\temp\;C:\Windows\Temp\"
<Directory "D:/web/UPUPW_AP5.6_64/vhosts/www.wh2013.net">
Options FollowSymLinks
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory>
<LocationMatch "/(inc)/(.*)$">
Require all denied
</LocationMatch>
<LocationMatch "/(attachment|attachments|uploadfiles|avatar)/(.*).(php|php5|phps|asp|asp.net|jsp)$">
Require all denied
</LocationMatch>
</VirtualHost>
上边的是默认的用户通过IP访问就会进入到 htdocs目录里边,下班的www.wh2013.net才是我们配置的第一个虚拟主机
httpd-ssl.conf 这个配置主要是SSL的关键
Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
#SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
SSLPassPhraseDialog builtin
#SSLSessionCache "dbm:logs/ssl_scache"
SSLSessionCache "shmcb:logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost *:443>
DocumentRoot "D:/web/UPUPW_AP5.6_64/vhosts/www.wh2013.net"
ServerName www.wh2013.net:443
ServerAlias wh2013.net
ServerAdmin webmaster@www.wh2013.net
DirectoryIndex index.html index.htm index.php default.php app.php u.php
ErrorLog logs/www.wh2013.net-error-443.log
CustomLog logs/www.wh2013.net-access_%Y%m%d.log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
SSLEngine on
#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4 RSA: HIGH: MEDIUM: LOW: SSLv2: EXP: eNULL
SSLCertificateFile "D:/web/UPUPW_AP5.6_64/Apache2/conf/ssl/public.pem"
SSLCertificateKeyFile "D:/web/UPUPW_AP5.6_64/Apache2/conf/ssl/214452897390627.key"
SSLCertificateChainFile "D:/web/UPUPW_AP5.6_64/Apache2/conf/ssl/chain.pem"
<Directory "D:/web/UPUPW_AP5.6_64/vhosts/www.wh2013.net">
SSLOptions +StdEnvVars
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<FilesMatch "\.(shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
我这里没有按照阿里云的 SSLCipherSuite 这个配置因为我需要的安全系数不高,能够满足微信即可。
配置完这些就可以重启APACHE 了,然后访问 https://www.wh2013.net 发现我没有权限访问 这个站通过443
这时再配置下 httpd.conf 的 <directory>这个配置
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
Satisfy all
</Directory>
再 重启试下就可以了(核心点 在配置的过程中出现了很多的错误,需要及时的去看错误日志,但发现错误日志里什么也没有,再找系统 的应用程序错误日志也是没有说明哪里有错误!最后发现 apache的配置文件是类似php的流程加载的,这时候我们可以边注释边发现问题 可以说是通过断点调式发现了问题并解决了)
第六步 通过httpd.conf 或者 .htaccess 文件来重定向 http到https 方法查看我的其他文章 搜索关键词 htaccess 应该可以搜索到相关文章。
附:windows下生成域名证书
1.通过cmd 黑框框进入 apache bin目录
set OPENSSL_CONF = ..\conf\openssl.cnf
2.生成服务端私钥
openssl genrsa -out server.key 1024 此时bin目录下会生成server.key
3.生成签署申请
openssl req -new -out server.csr -key server.key -config ../conf\openssl.cnf
需要填写信息 国家 CN 省份 GuangDong 城市 HuiZhou 公司名 域名 等等
其中域名需要填写正确
4.生成CA私钥
openssl genrsa -out ca.key 1024 生成了 ca.key
5.生成自签署证书
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..\conf\openssl.cnf
6.生成CA的服务器签署证书
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf 如果出错则如下
再当前目录下建立一个demoCA目录,在里面创建一个index.txt空文件,一个名为serial,内容为01的文件,以及一个文件夹newcerts 再重新执行一次
配置的话就跟上面是一样的了
7.打开IE,输入127.0.0.1:8080出现It works。输入https://127.0.0.1:443的时候会弹出一个验证证书的地方,点击取消发现没能成功。上网查了一下,原来还要生成一个 .pfx 的证书并导入到IE中去。
打开刚才的命令行,执行命令openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx,在bin下面生成一个ca.pfx的文件,中间有个输入密码的过程,要记住这个密码。打开IE浏览器-》工具-》Internet选项-》内容-》证书,按照提示导入,这里要输入刚才生成 .pfx 过程中输入的密码。导入之后,打开浏览器输入https://127.0.0.1:443
转载请标明原出处 神秘剑派---大师兄 xzc
- 我的微信
- 这是我的微信扫一扫
-
- 我的微信公众号
- 我的微信公众号扫一扫
-