Apache服务器安装SSL证书

下载安装apache

windows apache ssl版本(推荐)

推荐下载安装apache ssl版本,内置openssl,简化操作

https://www.apachehaus.com/cgi-bin/download.plx

windows apache 非ssl版本

下载 mode_ssl.so

https://www.malaoshi.top/show_1EF5T6UIbDSN.html

放到这个路径Apache安装路径\modules\mode_ssl.so

服务器准备工作

硬件服务器上已经开启了443端口(HTTPS服务的默认端口)

阿里云申请免费证书

参见:
https://yq.aliyun.com/articles/637307

下载Apache证书文件

解压后的文件夹中有3个文件:

  • 证书文件:以.crt为后缀或文件类型。
  • 证书链文件:以.crt为后缀或文件类型。
  • 密钥文件:以.key为后缀或文件类型。

在Apache安装目录中新建cert目录,并将解压的Apache证书、 证书链文件和密钥文件拷贝到cert目录中。如果需要安装多个证书,需在Apache目录中新建对应数量的cert目录,用于存放不同的证书 。

修改httpd.conf配置文件。

在Apache安装目录下,打开Apache/conf/httpd.conf文件,并找到以下参数,按照下文中注释内容进行配置。

#LoadModule ssl_module modules/mod_ssl.so  #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。
#Include conf/extra/httpd-ssl.conf  #删除行首的配置语句注释符号“#”。

保存httpd.conf文件并退出

修改httpd-ssl.conf配置文件。

打开Apache/conf/extra/httpd-ssl.conf文件并找到以下参数,按照下文中注释内容进行配置。

说明 根据操作系统的不同,http-ssl.conf文件也可能存放在conf.d/ssl.conf目录中。

<VirtualHost *:443>     
    ServerName   #修改为申请证书时绑定的域名www.YourDomainName1.com。                    
    DocumentRoot  /data/www/hbappserver/public          
    SSLEngine on   
    SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 修改加密套件。
    SSLHonorCipherOrder on
    SSLCertificateFile cert/domain name1_public.crt   # 将domain name1_public.crt替换成您证书文件名。
    SSLCertificateKeyFile cert/domain name1.key   # 将domain name1.key替换成您证书的密钥文件名。
    SSLCertificateChainFile cert/domain name1_chain.crt  # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。
</VirtualHost>
#如果证书包含多个域名,复制以上参数,并将ServerName替换成第二个域名。
<VirtualHost *:443>     
    ServerName   #修改为申请证书时绑定的第二个域名www.YourDomainName2.com。                    
    DocumentRoot  /data/www/hbappserver/public          
    SSLEngine on   
    SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 修改加密套件。
    SSLHonorCipherOrder on
    SSLCertificateFile cert/domain name2_public.crt   # 将domain name2替换成您申请证书时的第二个域名。
    SSLCertificateKeyFile cert/domain name2.key   # 将domain name2替换成您申请证书时的第二个域名。
    SSLCertificateChainFile cert/domain name2_chain.crt  # 将domain name2替换成您申请证书时的第二个域名;证书链开头如果有#字符,请删除。
</VirtualHost>

说明 需注意您的浏览器版本是否支持SNI功能。如果不支持,多域名证书配置将无法生效。

保存httpd-ssl.conf文件并退出。

重启Apache服务器使SSL配置生效

https://www.malaoshi.top/show_1EF5PEZkGAzg.html

设置HTTP请求自动跳转HTTPS

  1. 在Apache安装目录下,打开Apache/conf/httpd.conf文件,并找到以下参数,按照下文中注释内容进行配置。
    #LoadModule rewrite_module modules/mod_rewrite.so #删除行首的配置语句注释符号“#”
    
  2. 在httpd.conf文件中的<VirtualHost *:80> </VirtualHost>中间,添加以下重定向代码。
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
    

访问网站

如果网页地址栏出现 小锁 标志,表示证书安装成功。

感谢:
https://blog.csdn.net/zha6476003/article/details/80900988

https://help.aliyun.com/document_detail/98727.html?spm=5176.2020520163.0.0.675356a7nMli2a