apache配置SSL证书开启https
apache配置SSL证书开启https
关于windows下apache服务器配置https支持的操作,记录如下:
NO1:一般在阿里云申请ssl证书,这些操作就不做介绍了,自行百度操作,获取免费的证书有很多版本,此处只记录apache服务器操作。下载证书后解压,将会看到三个文件,一个服务器证书类似xxx-public.crt命名,一个中间证书类似xxx-chain.crt,一个私钥文件类似xxx.key,将文件放入apache安装根目录下自行创建文件夹cert下;
NO2:打开apache配置文件httpd.conf,找到# LoadModule ssl_module modules/mod_ssl.so语句,去掉前面的#,找到#Include conf/extra/httpd-ssl.conf,系统本来默认是使用该文件来配置SSL的,此处我自己新建了一个文件,方便后续使用vhost配置,在找到配置文件处新增Include conf/extra/httpd-myssl.conf,在该目录创建文件http-myssl.conf,内容编辑如下:
Listen 443
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!RC4:!LOW:!MD5:!aNULL:!eNULL:!3DES:!EXP:!PSK:!SRP:!DSS
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:${SRVROOT}/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
#SSLProtocol all -SSLv2 -SSLv3
#SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
#SSLHonorCipherOrder on
<VirtualHost _default_:443>
SSLEngine on
ServerName www.xxx.com
SSLCertificateFile "C:\main\Apache24\cert\xxx-public.crt"
SSLCertificateKeyFile "C:\main\Apache24\cert\xxx.key"
SSLCertificateChainFile "C:\main\Apache24\cert\xxx-chain.crt"
DocumentRoot "C:\main\www"
</virtualhost>
SeverName处配置自己的站点域名,DocumentRoot指向项目目录
NO3:有时候我们想通过http自动跳转到https,这个要怎么操作呢,方式如下,打开虚拟主机域名配置文件httpd_vhosts.conf,在文件内添加内容如下:
<VirtualHost *:80>
DocumentRoot "C:\main\www"
ServerName www.xxx.com
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</VirtualHost>
注意,此处需要开启rewrite重写支持,打开配置文件httpd.conf,找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的#,最后重新启动apache,不出意外应该是可以在浏览器链接框愉快滴看到绿色的https了