今天折騰了一下,總結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服務。