今天折腾了一下,总结apache添加https证书的方法。
证书类型分为两种,
A)自签名证书
利用oepnssl命令生成.csr和key文件,没有授信,没有有效期,但是可以强制使用https协议,可用于本地和测试阶段。
步骤如下:
1.安装相关依赖。
yum install mod_ssl openssl
2.生成私钥
openssl genrsa -out server.key 2048
3.生成签名文件
openssl req -new -key server.key -out server.csr
4.生成自签名证书。有效期设置为10年
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
5.将相关文件复制到相应位置。
cp server.crt /etc/pki/tls/certs/ cp server.key /etc/pki/tls/private/ cp server.csr /etc/pki/tls/private/
6.修改ssl.conf中相应配置。找到VirtualHost 443相关配合段,将下面几行配好:
SSLCertificateFile /etc/pki/tls/certs/server.crt SSLCertificateKeyFile /etc/pki/tls/private/server.key
SSLEngine on
(ServerName、DocumentRoot记得也配好)
7.重启apache服务。
service httpd restart
B) 真实ssl证书
可以使用cerbot 或者letsencrypt进行生成证书。相关命令操作如下:
git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt ./letsencrypt-auto certonly --standalone --email YOUREMAIL@XXX.com -d YOURDOMAIN.com -d www.YOURDOMAIN.com 请用你自己的邮箱和域名
特别注意:Let`s Encrypt提供的证书每隔90天就要重新申请一次
说一些相关又题外的话,如果apache是部署在docker容器中的话,记得把443的端口映射出来,让宿主机能正常访问到https的web服务。