在之前我的文章中我已經搭建了nextcloud服務器,現在我們需要通過域名及https訪問怎么辦
1. 進行了簡單的httpd設置后,就可以為網站添加SSL證書功能了。
2. 首先得獲取證書,有了證書才能添加。我們采用本地上傳的方式將SSL證書上傳到CentOS上。
獲取證書推薦:https://freessl.cn/


證書類型:ECC
驗證類型:DNS
證書解析:按提示操作添加域名解析(生成txt記錄添加到域名解析)
下載證書:選擇Apache類型證書
3. 首先,判斷CentOS7是否已經安裝了SSL證書服務模塊 mod_ssl 與 openssl:
rpm -qa mod_ssl
rpm -qa openssl
鍵入上式,沒有反應就是沒有安裝SSL證書服務模塊 一般新裝的CentOS7默認沒有安裝mod_ssl、openssl默認有安裝。
4. 安裝mod_ssl 與openssl
yum install mod_ssl openssl
如果已經安裝了openssl,上述命令會直接更新openssl。
5. 經過第四步安裝后,CentOS7中會自動生成 /etc/httpd/conf.d/ssl.conf 文件,ssl.conf文件就是SSL模塊的配置文件。
6. 使用命令行,創建文件夾:/var/www/ssl
mkdir /var/www/ssl
(注意: mkdir 與待創建目錄名之間只能隔一個空格。)
7. 教程為配置Apache的httpd服務器系統,所以我們將只需要將Apache文件夾下面的三個ssl證書文件上傳到在CentOS上創建的 /var/www/ssl 文件夾即可。
這三個ssl證書文件分別是:
ca_bundle.crt
www.xxxx.com.crt
www.xxxx.com.key
8. 修改/etc/httpd/conf.d/ssl.conf文件:
對應于云服務商提供的SSL證書與Apache的ssl三證書特性,需要修改ssl.conf文件中的三個證書存放路徑:
修改1:將第56行的:
修改為:
修改2:將第59行的:
#DocumentRoot "/var/www/html" 去掉#號注釋,
修改為:DocumentRoot "/var/www/html"
修改3:將第60行的:
#ServerName www.example.com:443 去掉#號注釋,
修改為:
ServerName www.xxxx.com:443
修改4:將第64行的:
ErrorLog logs/ssl_error_log 修改為:
ErrorLog /var/www/html/logs/error.log
修改5:查看設置第70行,是否設置為:SSLEngine on ,
如果不是就改為 SSLEngine on 。
修改6:將第100行的:
SSLCertificateFile /etc/pki/tls/certs/localhost.crt 修改為:
SSLCertificateFile /var/www/ssl/www.xxxx.com.crt
修改7:將第107行的:
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key 修改為:
SSLCertificateKeyFile /var/www/ssl/www.xxxx.com.key
修改8:將第122行的:
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt 去掉#號,修改為:
SSLCACertificateFile /var/www/ssl/ca_bundle.crt
因為 /var/www/html/logs/目錄不存在,需要創建
mkdir /var/www/html/logs/
修改9:將末尾的第213行的:
CustomLog logs/ssl_request_log 修改為:
CustomLog /var/www/html/logs/access.log combined
并將下面一行的:"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b" 注釋掉。
或者 去掉 combined 直接改為:
CustomLog /var/www/html/logs/access.log (推薦這種方法,保留通配符)
最后,重新httpd 服務,使得修改生效:
systemctl restart httpd
完成!!!
注:端口443需開放到公網、域名www.xxxx.com需添加解析到公網IP