【Windows】Windows Server 2012 R2 利用PhpStudy部署apache,并在同一IP下部署HTTPS多域名

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_43811650/article/details/84564606

环境:
服务器:阿里云 Windows Server 2012 R2
域名:阿里云,已备案,已解析
SSL证书:阿里云,已购买

操作,以阿里云为例:
1.安装系统更新,关闭IE增强安全配置,开启防火墙,将常用端口(80,443,3306,8443等)加入入站规则,具体操作如下:
服务器管理器——Windows 更新——安装更新;
服务器管理器——IE增强的安全配置——关闭;
服务器管理器——Windows 防火墙——启用;
服务器管理器——Windows 防火墙——高级设置——入站规则——新建规则——端口——TCP和特定本地端口:80——允许连接——全选——名称和描述随意——完成;
同样操作将443,3306,8443等端口,根据实际情况添加;
2.在阿里云控制台的防火墙中添加相应端口的规则;
在这里插入图片描述
3.安装PhpStudy,下载地址:链接: http://phpstudy.php.cn/
4.根据需求切换版本,建议选择系统服务;
在这里插入图片描述
5.根据需求开启PHP扩展和apache模块,下图仅供参考:
在这里插入图片描述
在这里插入图片描述
6.下载SSL证书,在PhpStudy\PHPTutorial\Apache\conf下创建cert文件夹,将证书文件放入;
在这里插入图片描述
7.备份Apache\conf下的httpd.conf、vhosts.conf文件和Apache\conf\extra下的httpd-ssl.conf文件,打开httpd.conf,搜索

LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
Include conf/extra/httpd-ssl.conf

去掉前面的#,保存退出;
8.打开httpd-ssl.conf,搜索Listen 443,删除下面内容:

<VirtualHost _default_:443>
 
...
 
...
 
</VirtualHost>

9.添加如下代码:

SSLStrictSNIVHostCheck off
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
 
<VirtualHost *:443>
	# 网站1目录
	DocumentRoot "C:\WWW\aaa"
	# 网站1域名
	ServerName aaa.xxx.com
	# 网站1别名
	ServerAlias xxx.com
	# 网站1目录
	<Directory "C:\WWW\aaa">
		Options FollowSymLinks ExecCGI
		AllowOverride All
		Order allow,deny
		Allow from all
		Require all granted
	</Directory>
	SSLEngine on
	# 证书公钥配置
	SSLCertificateFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/aaa/public.pem"              
	# 证书私钥配置
	SSLCertificateKeyFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/aaa/214806726580310.key"      
	# 证书链配置
	SSLCertificateChainFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/aaa/chain.pem"         
</VirtualHost>
 
<VirtualHost *:443>
	# 网站2目录
	DocumentRoot "C:\WWW\bbb"
	# 网站2域名
	ServerName bbb.xxx.com
	# 网站2目录
	<Directory "C:\WWW\bbb">
		Options FollowSymLinks ExecCGI
		AllowOverride All
		Order allow,deny
		Allow from all
		Require all granted
	</Directory>
	SSLEngine on
	# 证书公钥配置
	SSLCertificateFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/bbb/public.pem"              
	# 证书私钥配置
	SSLCertificateKeyFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/bbb/214806726580310.key"      
	# 证书链配置
	SSLCertificateChainFile "C:/Software/PhpStudy/PHPTutorial/Apache/conf/cert/bbb/chain.pem"         
</VirtualHost>

多个域名就继续添加,保存退出,重启apache;
10.如果想要网站http强制跳转到https,打开httpd.conf,在末尾添加如下代码:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]

保存退出,重启apache;

猜你喜欢

转载自blog.csdn.net/weixin_43811650/article/details/84564606