1、我們將會使用letsencrypt證書頒發(fā)機構里的certbot客戶端
certbot官網(wǎng),國內也可訪問
https://certbot.eff.org/
2、準備工作,這一步很重要。
- 你首先需要有一個解析通過了的域名,什么意思呢,解析過后的域名意味著域名就是ip地址 , ip地址就是域名,我們訪問域名如同訪問ip地址。
- 你的服務器需要安裝好一個nginx,并且需要配置好,能夠通過http協(xié)議 + 域名訪問到你的網(wǎng)站。
這里我們只需要簡單配置一下,不要配置復雜了,目地只是為了讓certbot能夠識別到目標域名。
server {
listen 80;
server_name xxx.xxx.xxx;
root ~/project/dist;
}
#xxx.xxx.xxx是你解析好了的域名
#root后邊是你項目的根目錄
#配置好后你得要確保瀏覽器能夠訪問到你的服務,之后才能進行證書申請
3. 訪問certbot官網(wǎng)
- 我們選擇運行在python環(huán)境中的nginx,這里的nginx指的是你的服務是用nginx啟動的,后邊的pip指的是python環(huán)境,意為我們要用pip來安裝certbot客戶端。
- 之后的操作不要跟著官網(wǎng)做,往往實現(xiàn)不了。
官網(wǎng)的第二步中,我們是centos系統(tǒng),所以選擇下邊的命令,但是centos的包管理工具是yum,所以我們將dnf換成yum
yum install python3 augeas-libs #安裝python3環(huán)境,centos7默認是2.x的,版本太低了
3. 第三步就是先清除本機先前安裝的certbot。
官網(wǎng)提供了幾個辦法,但是都是依賴于各個系統(tǒng)的包管理工具而言的,如果你不是用包管理工具裝的,那自然通過官網(wǎng)提供給你的方法就卸載不掉。比如,我的是centos的yum包管理工具,我就可以先清理一下certbot(安裝沒安裝都可以執(zhí)行以下,不影響), 其他包管理工具的卸載方法都類似。
yum remove certbot
- 設置一個python虛擬環(huán)境
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
- 使用pip下載certbot客戶端
sudo /opt/certbot/bin/pip install certbot certbot-nginx
- 將環(huán)境certbot設置為環(huán)境變量,其實就是做了一個軟連接。
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
- 現(xiàn)在開始生成證書,注意,生成證書之前需要把你之前的nginx停掉,不能讓他啟動,而且,nginx的配置必須是全局的,意思就是你在終端的任何目錄下輸入nginx -v都不會報錯,當然如果你沒有把nginx命令放在系統(tǒng)變量里,你也可以通過如下命令指定nginx的配置文件路徑,但是會報一堆文件找不到的錯,不過好在我解決了,這里我真心不推薦你們使用這種辦法,與其這樣不如把nginx裝成全局的。
#不推薦,指定nginx配置文件的路徑
certbot --nginx --nginx-server-root=/some/other/path/nginx/conf
#推薦
sudo certbot certonly --nginx
輸入上邊的命令后會讓你確認幾次,前邊的輸入y(yes)就行,最后一個是讓你選擇需要生成證書的域名,這個域名不是我的,就不給大家看了。
生成完成之后證書會自動存放在/etc/letsencrypt/live
下,生成證書的域名會有一個文件夾在這里邊,比如剛才你為aa.com.cn生成了一個證書,那在/etc/letsencrypt/live
下就會有一個aa.com.cn的文件夾,證書就放在里邊。
4. 配置https協(xié)議(添加ssl證書)
編輯你的nginx.conf文件。在原來的基礎上添加一個ssl證書就行了。文章來源:http://www.zghlxwxcb.cn/news/detail-431883.html
server {
listen 443 ssl;
server_name xxx.xxx.com.cn;
error_log logs/xxx_error.log;#錯誤日志文件
access_log logs/xxx_access.log;#訪問日志文件
#ssl證書
ssl_certificate /etc/letsencrypt/live/xxx.xxx.com.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.xxx.com.cn/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
ssl_session_cache shared:SSL:50m;
ssl_prefer_server_ciphers on;
root /root/nft/nft_backend_ui; #項目的根目錄
location ~ ^/art-auction/ {
proxy_pass http://127.0.0.1:9000; 文件服務地址
}
#轉發(fā)到后端
location ~ ^/api/(portal|system|common|user)/ {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:9999;
}
}
到這里就完成了!文章來源地址http://www.zghlxwxcb.cn/news/detail-431883.html
到了這里,關于centos7 使用letsEncrypt certbot 生成免費的ssl證書 漸進學習的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!