在阿里云CA证书中心购买Symantec的免费SSL后,有两种选择:A直接推送CDN配置HTTPS,只能在使用CDN的时候可以正常使用,不过操作很简单,只需在CDN域名下操作一下就可以了;B在服务器配置HTTPS,操作稍微复杂了些,具体见后面内容。
阿里云提供的配置参考说明:主要是先下载对应版本的证书,然后到服务器安装

以下为官方说明:(ps:3984897660442为证书下载文件名,每个证书都不同的。)
文件说明:
1. 证书文件3984897660442.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件3984897660442.key、证书公钥文件public.pem、证书链文件chain.pem。
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为3984897660442.key;
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) #Include conf/extra/httpd-ssl.conf( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:
# 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile cert/public.pem # 证书私钥配置 SSLCertificateKeyFile cert/3984897660442.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile cert/chain.pem( 4 ) 重启 Apache。
( 5 ) 通过 https 方式访问您的站点,测试站点证书的安装配置
关于以上,我需要补充说明下:
1、httpd.conf 文件中的httpd-ssl.conf开启后,重启Apache是无法启动的,log无报错,需要先把httpd-ssl.conf文件内容配置好。
2、httpd-ssl.conf文件修改的内容需要在代码<VirtualHost _default_:443></VirtualHost>之间修改才能生效。
3、关于httpd-ssl.conf文件修改的路径,把原来安装默认的路径配置,全部替换成你所安装的Apache目录的绝对路径,在路径上报错Apache的error.log日志没有看到记录。
4、httpd-ssl.conf文件补充说明:在按照阿里云说明配置后,需要配置好DocumentRoot 和ServerName 的参数,才可以正常访问https,不然会出现http能访问,https报404。
<VirtualHost _default_:443>
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# General setup for the virtual host
DocumentRoot "C:\phpStudy\WWW\wx" #这里需要设置https网站的目录
ServerName ps.XXX.com:443 #这里设置网站域名和端口,一般都是443
ServerAdmin panda@xxx.com #这个是管理员邮箱,貌似没啥用
ErrorLog "C:/phpStudy/Apache/logs/error.log"
TransferLog "C:/phpStudy/Apache/logs/access.log"
此处省略无关代码....
</VirtualHost>
5、以上修改好配置路径和网站域名目录后,重启Apache就可以实现https访问了
顺带提及一下
【关于一个服务器配置多个https域名的处理】
参考资料:https://www.cnblogs.com/shaoyikai/p/4235690.html
至于一台主机,如何配置多个https网站呢?有以下几种方法:
- 使用通配符证书,此证书需要到专门的证书颁发机构购买。
- 使用普通证书,配置apache的ssl主机头(需要apache版本支持)。
第一种
通配符证书往往价格比较贵,对一些大公司很适合。而对于很多小站长来说,使用普通证书可以省下来很多费用。
配置方法较简单,和http网站虚拟主机类似,只不过这些网站公用一个证书。
证书安装方式,可以咨询证书颁发机构,或者自己配置IIS或Apache等服务器软件。
第二种
假如有2个域名aaa.com和bbb.com。
首先,购买两个域名相应的证书。
其次,配置httpd-ssl.conf文件,举例:
Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:C:/wamp/bin/apache/apache2.4.9/conf/ssl/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost _default_:443>
DocumentRoot "c:/wamp/www/aaa" #网站根目录
ServerName aaa.com:443 #主机名
ServerAdmin admin@aaa.com #管理员邮箱
ErrorLog "C:/wamp/bin/apache/apache2.4.9/logs/error_aaa.log"
TransferLog "C:/wamp/bin/apache/apache2.4.9/logs/access_aaa.log"
SSLEngine on
#注意以下证书文件路径!!!
SSLCertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl_aaa/public.crt"
SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl_aaa/private.key"
SSLCACertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl_aaa/ca-bundle.crt"
</VirtualHost>
<VirtualHost _default_:443>
DocumentRoot "c:/wamp/www/bbb" #网站根目录
ServerName bbb.com:443 #主机名
ServerAdmin admin@aaa.com #管理员邮箱
ErrorLog "C:/wamp/bin/apache/apache2.4.9/logs/error_bbb.log"
TransferLog "C:/wamp/bin/apache/apache2.4.9/logs/access_bbb.log"
SSLEngine on
#注意以下证书文件路径!!!
SSLCertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl_bbb/public.crt"
SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl_bbb/private.key"
SSLCACertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl_bbb/ca-bundle.crt"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "C:/wamp/bin/apache/apache2.4.9/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "C:/wamp/bin/apache/apache2.4.9/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
简单些理解,就是配置多个<VirtualHost _default_:443></VirtualHost>,跟vhosts.conf文件配置多个http域名类似。
以上,就基本能满足对https配置的管理与使用了

577

被折叠的 条评论
为什么被折叠?



