基于Amazon Linux使用pip安裝certbot并使用Apache配置證書的完整步驟

配置證書

1. 更新系統和安裝必要的軟件包

首先,確保系統和包管理器是最新的:

sudo dnf update -y
sudo dnf install -y python3 python3-pip python3-virtualenv httpd mod_ssl
2. 創建并激活虛擬環境

為了避免依賴沖突,使用virtualenv創建一個隔離的Python環境:

python3 -m venv myenv
source myenv/bin/activate
3. 安裝certbot和Apache插件

在虛擬環境中安裝certbot和certbot-apache插件:

pip install certbot certbot-apache
4. 配置Apache

確保Apache已經安裝并運行:

sudo systemctl enable httpd --now
5. 使用certbot獲取SSL證書

運行certbot命令以獲取SSL證書。請將yourdomain.com替換為您的實際域名:

sudo myenv/bin/certbot --apache -d yourdomain.com -d www.yourdomain.com

certbot將自動配置Apache以使用獲取的SSL證書。

6. 驗證SSL證書

驗證SSL證書是否已正確安裝:

sudo myenv/bin/certbot certificates
7. 配置自動更新

為了確保SSL證書自動更新,設置一個cron job:

sudo crontab -e

添加以下行來每天檢查并更新證書:

0 2 * * * /path/to/myenv/bin/certbot renew --quiet --deploy-hook "systemctl reload httpd"

確保將/path/to/myenv替換為您的虛擬環境的實際路徑。

8. 重新啟動Apache以應用更改

確保所有更改都已正確應用并重新啟動Apache:

sudo systemctl reload httpd
9. 驗證自動更新

您可以手動運行以下命令以測試自動更新過程:

sudo /home/ec2-user/myenv/bin/certbot renew --dry-run

這將模擬續訂過程而不會實際更改證書,以確保一切正常工作。

報錯
(myenv) [ec2-user@ip-172-31-29-84 ~]$ sudo myenv/bin/certbot --apache -d yourdomain.com -d www.yourdomain.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
The apache plugin is not working; there may be problems with your existing configuration.
The error was: NoInstallationError('Problem in Augeas installation')
解決Augeas依賴問題

由于Augeas安裝問題導致Apache插件無法工作,您可以嘗試以下步驟來解決這個問題。

安裝Augeas依賴

首先,確保Augeas庫已安裝在系統上:

sudo dnf install augeas-libs augeas -y

然后再嘗試重新運行certbot命令。

確認Augeas庫路徑

如果Augeas依賴安裝后問題依舊,可以嘗試手動設置Augeas庫路徑。

使用–webroot方法生成SSL證書

如果Augeas問題仍然存在,可以嘗試使用--webroot方法來獲取SSL證書。

確定您的webroot路徑

您的webroot路徑是您網站文件的根目錄,例如/var/www/html。確保您的Apache配置指向該目錄。

獲取SSL證書

使用以下命令來獲取SSL證書:

sudo myenv/bin/certbot certonly --webroot -w /var/www/html -d yourdomain.com -d www.yourdomain.com(myenv) [ec2-user@ip-172-31-24-7 ~]$ sudo myenv/bin/certbot certonly --webroot -w /var/www/html -d xxxxxx.asia -d www.xxxxxx.asia
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)(Enter 'c' to cancel): 郵箱地址- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for xxxxxx.asia and www.xxxxxx.asiaSaving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for xxxxxx.asia and www.xxxxxx.asiaSuccessfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/xxxxxx.asia/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/xxxxxx.asia/privkey.pem
This certificate expires on 2024-09-05.
These files will be updated when the certificate renews.NEXT STEPS:
- The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:* Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate* Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
配置Apache以使用SSL證書

獲取SSL證書后,您需要手動編輯Apache配置以使用這些證書。

編輯Apache配置

打開您的Apache配置文件,通常位于/etc/httpd/conf.d/ssl.conf或您的虛擬主機配置文件中。

添加或修改以下行以指向您的SSL證書和密鑰文件:

<VirtualHost *:443>ServerName yourdomain.comServerAlias www.yourdomain.comDocumentRoot /var/www/htmlSSLEngine onSSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pemSSLCertificateChainFile /etc/letsencrypt/live/yourdomain.com/chain.pem<Directory /var/www/html>Options Indexes FollowSymLinksAllowOverride AllRequire all granted</Directory>
</VirtualHost>

確保將yourdomain.com替換為您的實際域名。

重新加載Apache
sudo systemctl reload httpd
驗證SSL證書

您可以使用以下命令來驗證證書是否已正確安裝:

sudo myenv/bin/certbot certificates
配置自動更新

為了確保SSL證書自動更新,您可以設置一個cron job:

  1. 編輯cron配置

    sudo crontab -e
    
  2. 添加以下行來每天檢查并更新證書

    0 2 * * * /home/ec2-user/myenv/bin/certbot renew --quiet --deploy-hook "systemctl reload httpd"
    

確保將/home/ec2-user/myenv替換為您的虛擬環境的實際路徑。

10. AWS添加安全組HTTPS端口443

下載證書文件

Certbot生成的證書文件通常存儲在 /etc/letsencrypt/live/yourdomain.com/ 目錄中,其中 yourdomain.com 是您的實際域名。您可以通過以下步驟下載這些文件:

  1. 找到證書文件路徑

    Certbot生成的證書文件通常包括以下幾個主要文件:

    • privkey.pem:私鑰文件
    • fullchain.pem:完整的證書鏈文件(包括域名證書和中間證書)
    • cert.pem:域名證書文件
    • chain.pem:中間證書文件

    您可以使用以下命令列出所有證書及其路徑:

    sudo myenv/bin/certbot certificates
    
  2. 復制證書文件

    使用 scp(Secure Copy Protocol)或 rsync 等工具將證書文件從服務器復制到您的本地機器。

    例如,使用 scp

    scp ec2-user@your-ec2-ip:/etc/letsencrypt/live/yourdomain.com/privkey.pem /path/to/local/directory/
    scp ec2-user@your-ec2-ip:/etc/letsencrypt/live/yourdomain.com/fullchain.pem /path/to/local/directory/
    

    確保將 ec2-user@your-ec2-ip 替換為您的實際服務器用戶名和IP地址,將 /path/to/local/directory/ 替換為您本地機器上的目標目錄。

  3. 設置適當的權限

    下載到本地機器后,確保這些文件具有適當的權限。特別是私鑰文件,應該僅對您自己可讀:

    chmod 600 /path/to/local/directory/privkey.pem
    
示例步驟

以下是一個完整的示例,假設您要將證書文件下載到本地目錄 /home/user/certificates/

  1. 連接到您的EC2實例

    ssh ec2-user@your-ec2-ip
    
  2. 查找證書文件路徑

    sudo myenv/bin/certbot certificates
    
  3. 從服務器復制證書文件到本地機器

    在本地終端上運行:

    scp ec2-user@your-ec2-ip:/etc/letsencrypt/live/yourdomain.com/privkey.pem /home/user/certificates/
    scp ec2-user@your-ec2-ip:/etc/letsencrypt/live/yourdomain.com/fullchain.pem /home/user/certificates/
    
  4. 設置適當的權限

    chmod 600 /home/user/certificates/privkey.pem
    

刪除證書

  1. 列出所有證書

    首先,您可以列出所有已經管理的證書:

    sudo myenv/bin/certbot certificates
    

    這將顯示所有已安裝的證書及其詳細信息。

  2. 刪除特定證書

    使用以下命令刪除特定證書:

    sudo myenv/bin/certbot delete --cert-name xxxxxx.asia
    

    確保將 xxxxxx.asia 替換為您想要刪除的證書名稱。

更新Apache配置

刪除證書后,您需要更新Apache配置以移除對已刪除證書的引用。

  1. 編輯Apache配置文件

    打開您的Apache配置文件,通常位于 /etc/httpd/conf.d/ssl.conf 或您的虛擬主機配置文件中:

    sudo vim /etc/httpd/conf.d/ssl.conf
    
  2. 移除或修改以下行

    移除或修改指向已刪除證書文件的配置行:

    SSLCertificateFile /etc/letsencrypt/live/xxxxxx.asia/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/xxxxxx.asia/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/xxxxxx.asia/chain.pem
    
  3. 重新加載Apache

    保存文件并退出編輯器,然后重新加載Apache:

    sudo systemctl reload httpd
    
驗證刪除

確保證書已成功刪除,您可以再次使用以下命令確認:

sudo myenv/bin/certbot certificates

確認已刪除的證書不再列出。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24131.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

算法導論實戰(三)(算法導論習題第二十四章)

&#x1f308; 個人主頁&#xff1a;十二月的貓-CSDN博客 &#x1f525; 系列專欄&#xff1a; &#x1f3c0;算法啟示錄 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻擋不了春天的腳步&#xff0c;十二點的黑夜遮蔽不住黎明的曙光 目錄 前言 第二十四章 24.1-3 24.1-4 2…

筆記:DST與HPPC測試方法

一、DST測試方法&#xff1a; DST全稱為Dynamic Stress Test,是一種動態壓力測試方法&#xff0c;主要用于評估電池在實際使用條件下的綜合性能&#xff0c;模擬了車輛在行駛過程中可能會遇到的各種動態負載變化&#xff0c;如加速、減速、怠速等工況。 它的目的是評估電池在…

setattr前端接收方法深度解析

setattr前端接收方法深度解析 在前端開發中&#xff0c;setattr可能是一個較為陌生的概念&#xff0c;但它卻在某些場景下扮演著關鍵角色。setattr是一個Python內置函數&#xff0c;用于設置對象屬性的值。然而&#xff0c;在前端與后端交互的過程中&#xff0c;我們有時需要處…

【Week-R2】使用LSTM實現火災預測(tf版本)

【Week-R2】使用LSTM實現火災預測&#xff08;tf版本&#xff09; 一、 前期準備1.1 設置GPU1.2 導入數據1.3 數據可視化 二、數據預處理(構建數據集)2.1 設置x、y2.2 歸一化2.3 劃分數據集 三、模型創建、編譯、訓練、得到訓練結果3.1 構建模型3.2 編譯模型3.3 訓練模型3.4 模…

超詳細的java Comparable,Comparator接口解析

前言 Hello大家好呀&#xff0c;在java中我們常常涉及到對象的比較&#xff0c;不同于基本數據類型&#xff0c;對于我們的自定義對象&#xff0c;需要我們自己去建立比較標準&#xff0c;例如我們自定義一個People類&#xff0c;這個類有name和age兩個屬性&#xff0c;那么問…

[數據集][圖像分類]蘑菇分類數據集3122張215類別

數據集類型&#xff1a;圖像分類用&#xff0c;不可用于目標檢測無標注文件 數據集格式&#xff1a;僅僅包含jpg圖片&#xff0c;每個類別文件夾下面存放著對應圖片 圖片數量(jpg文件個數)&#xff1a;3122 分類類別數&#xff1a;215 類別名稱:[“almond_mushroom”,“amanita…

實驗筆記之——DPVO(Deep Patch Visual Odometry)

本博文記錄本文測試DPVO的過程&#xff0c;本博文僅供本人學習記錄用~ 《Deep Patch Visual Odometry》 代碼鏈接&#xff1a;GitHub - princeton-vl/DPVO: Deep Patch Visual Odometry 目錄 配置過程 測試記錄 參考資料 配置過程 首先下載代碼以及創建conda環境 git clo…

Data Management Controls

Data Browsing and Analysis Data Grid 以標準表格或其他視圖格式&#xff08;例如&#xff0c;帶狀網格、卡片、瓷磚&#xff09;顯示數據。Vertical Grid 以表格形式顯示數據&#xff0c;數據字段顯示為行&#xff0c;記錄顯示為列。Pivot Grid 模擬微軟Excel的樞軸表功…

有待挖掘的金礦:大模型的幻覺之境

人工智能正在迅速變得無處不在&#xff0c;在科學和學術研究中&#xff0c;自回歸的大型語言模型&#xff08;LLM&#xff09;走在了前列。自從LLM的概念被整合到自然語言處理&#xff08;NLP&#xff09;的討論中以來&#xff0c;LLM中的幻覺現象一直被廣泛視為一個顯著的社會…

Oracle EBS AP發票創建會計科目提示:APP-SQLAP-10710:無法聯機創建會計分錄

系統版本 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 問題癥狀: 提交“創建會計科目”請求提示錯誤信息如下: APP-SQLAP-10710:無法聯機創建會計分錄。 請提交應付款管理系統會計流程,而不要為此事務處理創建會計分錄解決方法 數據修復SQL腳本: UPDATE ap_invoi…

LabVIEW閥性能試驗臺測控系統

本項目開發的閥性能試驗臺測控系統是為滿足國家和企業相關標準而設計的&#xff0c;主要用于汽車氣壓制動系統控制裝置和調節裝置等產品的綜合性能測試。系統采用工控機控制&#xff0c;配置電器控制柜&#xff0c;實現運動控制、開關量控制及傳感器信號采集&#xff0c;具備數…

vue封裝一個查詢URL參數方法

vue封裝一個查詢URL參數方法 在 Vue 中&#xff0c;你可以封裝一個查詢 URL 參數的方法來獲取 URL 中的查詢參數。以下是一個示例代碼&#xff1a; export const getQueryParam (param) > {const urlParams new URLSearchParams(window.location.search);return urlPara…

算法-分治策略

概念 分治算法&#xff08;Divide and Conquer&#xff09;是一種解決問題的策略&#xff0c;它將一個問題分解成若干個規模較小的相同問題&#xff0c;然后遞歸地解決這些子問題&#xff0c;最后合并子問題的解得到原問題的解。分治算法的基本思想是將復雜問題分解成若干個較…

東方博宜1565 - 成績(score)

問題描述 牛牛最近學習了 C 入門課程&#xff0c;這門課程的總成績計算方法是&#xff1a; 總成績作業成績 20% 小測成績 30% 期末考試成績 50%。 牛牛想知道&#xff0c;這門課程自己最終能得到多少分。 輸入 三個非負整數 A、B、C &#xff0c;分別表示牛牛的作業成績、…

計算機網絡 期末復習(謝希仁版本)第3章

對于點對點的鏈路&#xff0c;目前使用得最廣泛的數據鏈路層協議是點對點協議 PPP (Point-to-Point Protocol)。局域網的傳輸媒體&#xff0c;包括有線傳輸媒體和無線傳輸媒體兩個大類&#xff0c;那么有線傳輸媒體有同軸電纜、雙絞線和光纖&#xff1b;無線傳輸媒體有微波、紅…

計算引擎:Flink核心概念

Apache Flink 是一個流處理框架,擅長處理實時數據流和批處理任務。Flink 提供了強大的功能來處理和分析大量數據。以下是 Flink 的核心概念: 1. DataStream 和 DataSet API DataStream API: 用于處理無界數據流,即不斷生成和流動的數據。例如,傳感器數據、日志等。DataSet…

基于Texture2D 實現Unity 截屏功能

實現 截屏 Texture2D texture new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false); texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0); texture.Apply(); 存儲 byte[] array ImageConversion.EncodeToPNG(texture); if (!…

分享萬能點擊器免費版,吾愛大佬出品,這個太贊了!

小伙伴們&#xff01;阿星又來給大家推薦神奇的小軟件啦&#xff01;這次的主角可是個神器——鼠標連點器&#xff01;你聽過沒&#xff1f;這玩意兒簡直是個“自動小助手”&#xff0c;讓你的鼠標在屏幕上飛舞&#xff0c;點得飛快&#xff0c;解放你的雙手&#xff0c;讓你網…

【ARM 常見匯編指令學習 6.2 -- ARMv8 匯編指令 SDIV 詳細介紹】

文章目錄 SDIV指令格式使用示例注意事項總結 SDIV ARMv8 架構中的 SDIV 指令用于執行帶符號整數除法操作。這意味著它可以處理負數除法&#xff0c;與 UDIV&#xff08;執行無符號整數除法&#xff09;形成對比。SDIV 將兩個寄存器中的帶符號整數相除&#xff0c;將除法結果存…

react學習-組件傳值

1.props傳值 主要步驟&#xff1a; 在父組件中引用子組件時&#xff0c;在子組件上面寫入name1{name2}格式進行傳值&#xff0c;name1為子組件中對應的用于接收數據的字段名稱&#xff0c;name2為父組件中需要傳遞到子組件中的值&#xff08;state中聲明的數據&#xff09;&…