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>
评论区