Apache安裝https-免費(fèi)SSL證書Let’s Encrypt安裝使用教程

原本并非打算從http升級(jí)到https,但遭到了電信挾持,在網(wǎng)站中強(qiáng)行插入了電信廣告,因此被迫只能升級(jí)到https。
還好,升級(jí)到https并沒有想象中的那么復(fù)雜。
以下會(huì)講到自簽名證書的安裝和免費(fèi)SSL證書Let`s Encrypt的安裝
  • 自簽名證書:無需使用第三提供的SSL證書,實(shí)現(xiàn)https,但瀏覽器會(huì)提示該簽名不安全,但仍然可以使用https訪問,適用于自己的測(cè)試服務(wù)器或個(gè)人服務(wù)器

  • 使用免費(fèi)SLL證書:使用到了第三方提供的SSL證書,實(shí)現(xiàn)https,一切正常,企業(yè)使用也沒問題,但Let`s Encrypt提供的證書每隔90天就要重新申請(qǐng)一次

一、自簽名證書安裝

1. 安裝相關(guān)工具

yum install mod_ssl openssl

2.生成簽名文件(默認(rèn)生成在當(dāng)前目錄下)

首先,生成2048位的加密私鑰

openssl genrsa -out server.key 2048

然后,生成證書簽名請(qǐng)求(CSR),這里需要填寫許多信息,如國家,省市,公司等

openssl req -new -key server.key -out server.csr

最后,生成類型為X509的自簽名證書。有效期設(shè)置3650天,即有效期為10年

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

3.把簽名文件復(fù)制到指定目錄下

創(chuàng)建證書后,將文件復(fù)制到對(duì)應(yīng)的目錄。

cp server.crt /etc/pki/tls/certs/
cp server.key /etc/pki/tls/private/        
cp server.csr /etc/pki/tls/private/

4.修改apache的全局ssl.conf

sudo vi /etc/httpd/conf.d/ssl.conf

僅僅需要把其中的簽名文件引用路徑改成我們第3步復(fù)制的路徑

SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key

5.修改虛擬主機(jī)設(shè)置

<VirtualHost *:443>
  ServerAdmin admin@example.com
  DocumentRoot "/data/wwwroot/"
  ServerName www.example.com:443
  SSLEngine on
  SSLCertificateFile /etc/pki/tls/certs/server.crt
  SSLCertificateKeyFile /etc/pki/tls/private/server.key
  略
</VirtualHost>

6.修改添加端口監(jiān)聽

vi /usr/local/apache/conf/httpd.conf
Listen 443 https

7.如果你設(shè)置了防火墻,請(qǐng)?jiān)诜阑饓χ虚_啟443端口

如果是firewalld的可以使用下面命令

sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
sudo firewall-cmd --runtime-to-permanent

如果是iptables的可以使用下面命令

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

8.重啟apache

apachectl restart 或者 service httpd restart(oneInStack環(huán)境)

9.提示

如果瀏覽器提示簽名不安全,是正?,F(xiàn)象,仍然可以強(qiáng)行訪問https,此時(shí)說明已經(jīng)安裝成功。
其實(shí)實(shí)現(xiàn)https的主要是以下兩個(gè)簽名生成的文件的生成和引入

server.crt
server.key

二、使用免費(fèi)SLL證書

1.先解除443端口的占用

如果你已經(jīng)使用了443端口,比如你已經(jīng)安裝了自簽名證書,并開啟了https,此時(shí)apache已經(jīng)占用了443端口,那么你在安裝letsencrypt會(huì)提示443端口已經(jīng)被占用,無法綁定,所以我們提前先解除apache對(duì)443端口的監(jiān)聽,并暫時(shí)移出vhost下443的虛擬主機(jī)

vi /usr/local/apache/conf/httpd.conf
## Listen 443 https 暫時(shí)注釋掉這行
apachectl restart 或者 service httpd restart(oneInStack環(huán)境) 重啟apache

2.下載letsencrypt項(xiàng)目,并進(jìn)入該目錄,執(zhí)行生成免費(fèi)SSL證書命令

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --standalone --email YOUREMAIL@XXX.com -d YOURDOMAIN.com -d www.YOURDOMAIN.com 請(qǐng)用你自己的郵箱和域名

看到Congratulations說明生成免費(fèi)SSL成功
證書會(huì)生成在 /etc/letsencrypt/live/YOURDOMAIN.com/目錄下

3.修改apache的全局ssl.conf

sudo vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/letsencrypt/live/YOURDOMAIN.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/YOURDOMAIN.com/privkey.pem

4.修改添加端口監(jiān)聽

vi /usr/local/apache/conf/httpd.conf
Listen 443 https

5.如果你設(shè)置了防火墻,請(qǐng)?jiān)诜阑饓χ虚_啟443端口

如果是firewalld的可以使用下面命令

sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
sudo firewall-cmd --runtime-to-permanent

如果是iptables的可以使用下面命令

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

6.重啟apache

apachectl restart 或者 service httpd restart(oneInStack環(huán)境)

7.提示

使用免費(fèi)SLL證書:使用到了第三方提供的SSL證書,實(shí)現(xiàn)https,一切正常,企業(yè)使用也沒問題,但Let`s Encrypt提供的證書每隔90天就要重新申請(qǐng)一次
其實(shí)實(shí)現(xiàn)https的主要是以下兩個(gè)簽名生成的文件的生成和引入

fullchain.pem
privkey.pem

來自作者的小留言

  • 本文原創(chuàng),允許任意轉(zhuǎn)載,但請(qǐng)按以下格式轉(zhuǎn)載
    轉(zhuǎn)載自簡(jiǎn)書-王樂城愚人云端:+【本文鏈接】
  • 我的小博客:愚人云端
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容