目 录CONTENT

文章目录

Apache配置HTTPS

简中仙
2023-05-25 / 0 评论 / 0 点赞 / 53 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2023-10-07,若内容或图片失效,请留言反馈。 本文如有错误或者侵权的地方,欢迎您批评指正!

1、安装Openssl

安装Openssl 要使Apache支持SSL,需要首先安装Openssl支持,yum 安装 OpenSSL 和 openssl-devel、httpd-devel,或者可以自己编译安装

2、apache 编译ssl模块

./configure --prefix=/usr/local/apache --enable-so --enable-ssl --with-ssl=/usr/local/ssl --enable-mods-shared=all

3、申请证书(略)

4、安装ssl证书

在Apache安装目录中新建cert目录,并将解压的Apache证书、证书链文件和密钥文件拷贝到cert目录中。

如果需要安装多个证书,需在Apache安装目录中新建对应数量的cert目录,用于存放不同的证书。

打开apache安装目录下conf目录中的httpd.conf文件

# vim /usr/local/apache/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so   				# 取消注释
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so   				# 取消注释
Include conf/extra/httpd-ssl.conf    					# 取消注释
# vim extra/httpd-ssl.conf 
# grep -v "^$" httpd-ssl.conf | grep -v "^#"
<VirtualHost *:443>     
    ServerName   #修改为申请证书时绑定的域名。                    
    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   #修改为申请证书时绑定的第二个域名。                    
    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>

5、HTTP请求自动跳转HTTPS

修改httpd.conf文件,设置HTTP请求自动跳转HTTPS。

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

6、配置http2

# vim /usr/local/apache/conf/httpd.conf
LoadModule http2_module modules/mod_http2.so   				# 取消注释
# vim /usr/local/apache/conf/extra/httpd-ssl.conf 
<VirtualHost ...>
    ServerName test.example.org
    Protocols h2 http/1.1   				# 允许 h2 成为服务器连接上的首选协议
</VirtualHost>
0

评论区