成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

無需花一分錢:輕松獲取SSL證書的三種方法

開發 前端
OpenSSL是一個強大的開源加密庫,它提供了各種密碼學功能,包括對稱加密、非對稱加密、數字證書、消息摘要等。它也包含了SSL和TLS協議的實現,因此可以用于安全地傳輸數據和建立安全的通信連接。

前言

這篇精彩文章詳細介紹了三種獲取免費 SSL 證書的方式,讓你輕松提升網站安全性。不論你是剛入門的新手還是經驗豐富的專業人士,都能從中找到實用指南和方法。

獲取SSL證書的主要途徑

一般獲取 SSL 證書的途徑也就那么幾個,以下是一些常見的途徑:

  • 商業證書頒發機構(CA):你可以選擇購買商業 CA(如 Comodo、DigiCert、GlobalSign、Symantec 等)頒發的 SSL 證書。這些證書通常提供更多的功能和保障,適用于各種企業級需求。
  • 托管服務提供商:如果你使用云托管服務(國外如 AWS、Azure、Google Cloud 等,國內,如阿里云、騰訊云等),這些平臺通常提供集成的 SSL 證書管理服務,可以方便地獲取和配置 SSL 證書。
  • Let's Encrypt:Let's Encrypt 是一個免費的證書頒發機構,通過他們的服務可以獲取免費的 SSL 證書,支持自動化簽發和更新。
  • 第三方證書市場:有一些第三方的證書市場(如 SSLs.com、Namecheap 等)也提供各種類型的 SSL 證書選擇,你可以在這些市場上購買并獲取證書。
  • 自簽名證書:如果你只是在內部環境或測試目的下使用 SSL 加密,你也可以生成自簽名證書來使用。不過需要注意的是,自簽名證書在公共網絡中可能會受到不信任。

openssl

OpenSSL是一個強大的開源加密庫,它提供了各種密碼學功能,包括對稱加密、非對稱加密、數字證書、消息摘要等。它也包含了SSL和TLS協議的實現,因此可以用于安全地傳輸數據和建立安全的通信連接。

OpenSSL支持常見的加密算法,如AES、DES、RSA、DSA等,同時還提供了各種工具和命令行實用程序,以便用戶進行加密、解密、簽名、驗證等操作。除此之外,OpenSSL還能夠生成和管理數字證書,用于網絡安全、身份認證和數據完整性驗證。

由于其廣泛的應用和強大的功能,OpenSSL已經成為許多軟件和系統中不可或缺的組件,被廣泛應用于網絡安全領域、Web服務器、虛擬私有網絡(VPN)、電子商務等各種場景中。

下面就詳細分享一下如何使用 OpenSSL 生成 SSL 數字證書:

生成私鑰(Key)

使用以下命令生成一個 RSA 私鑰文件,私鑰文件名字叫 my-key.pem:

#生成到根目錄下
openssl genrsa -out my-key.pem 2048
#生成到/opt/ssl目錄下
openssl genrsa -out /opt/ssl/my-key.pem 2048

關于生成私鑰命令的解讀:

  • openssl genrsa:表示要執行 OpenSSL 的 RSA 密鑰對生成操作。
  • -out my-key.pem:指定了生成的私鑰文件的輸出路徑和文件名,這里是 my-key.pem,表示當前目錄是根目錄,生成私鑰文件的名字是my-key.pem。
  • 2048:指定了生成的私鑰的長度為 2048 位。RSA 密鑰對的安全性與密鑰長度密切相關,2048 位長度目前被認為是足夠安全的長度。

生成證書簽名請求

使用指定的私鑰文件(my-key.pem)生成一個新的證書簽名請求(CSR),并將生成的 CSR 寫入到指定的輸出文件中(my-csr.pem)

#生成到根目錄下
openssl req -new -key key.pem -out csr.pem
#生成到/opt/ssl目錄下
openssl req -new -key /opt/ssl/my-key.pem -out /opt/ssl/my-csr.pem

圖片圖片

在生成證書簽名請求命令中有幾個關鍵信息:

  • openssl req:表示要執行 OpenSSL 的證書請求(req)操作。
  • -new:表示生成一個新的證書請求。
  • -key my-key.pem:指定了私鑰文件的路徑和文件名,這里是 my-key.pem,表示在目錄下,文件名叫my-key.pem。證書請求需要使用私鑰進行加密,因此需要指定私鑰文件的位置。
  • -out my-csr.pem:指定了生成的證書簽名請求(CSR)的輸出文件路徑和文件名,這里是 my-csr.pem,表示在目錄下,文件名叫my-csr.pem。生成的 CSR 文件包含了公鑰以及與證書相關的信息,用于向證書頒發機構申請簽發數字證書。

另外,在執行生成證書簽名請求的命令時,系統會提示你輸入一些信息,這些信息將被包含在你的證書請求中。那么輸入的這些信息是什么意思呢?且往下看:

圖片圖片

  • Country Name (2 letter code) [XX]:國家代碼,通常是兩個字母的國家縮寫。我在這里輸入 "CN" 代表中國。
  • State or Province Name (full name):州或省份名稱的全稱。我在這里輸入 "HN",代表河南。
  • Locality Name (eg, city) [Default City]:地理位置名稱,例如城市。我在這里輸入 "ZZ",代表鄭州。
  • Organization Name (eg, company) [Default Company Ltd]:組織名稱,例如公司名稱。我在這里輸入 "YZXA",代表組織或公司名稱。
  • Organizational Unit Name (eg, section):組織單位名稱,例如部門。在這里輸入 "YZXA",代表組織單位名稱。
  • Common Name (eg, your name or your server's hostname):通用名稱,可以是你的名字或服務器的主機名。我在這里輸入 "my-test",這個沒有具體含義。
  • Email Address:電子郵件地址。在這里輸入 "fox9916@163.com",聯系郵箱地址。
  • A challenge password:挑戰密碼,用于加密私鑰。在這里輸入 "fanfu",是為了保護私鑰而設置的密碼。
  • An optional company name:可選的公司名稱。在這里輸入 "yzxa",代表與公司相關的信息。

生成自簽名證書

通過上面面兩步,鑰文件、證書簽名請求文件都有了,然后使用以下命令生成一個自簽名的 X.509 證書文件(例如 cert.pem),有效期可以根據需求自行調整:

#生成到根目錄下
openssl req -x509 -days 365 -key my-key.pem -in my-csr.pem -out my-cert.pem
#生成到/opt/ssl目錄下
openssl req -x509 -days 365 -key /opt/ssl/my-key.pem -in /opt/ssl/my-csr.pem -out /opt/ssl/my-cert.pem

在生成自簽名證書的命令中也有幾個關鍵參數信息:

  • openssl req:表示要執行 OpenSSL 的證書請求(req)操作。
  • -x509:表示生成自簽名證書而不是證書簽名請求(CSR)。X.509是一種公鑰基礎設施(PKI)標準,用于數字證書的格式和結構。X.509證書包含了公鑰、證書所有者的信息、證書頒發機構的信息以及數字簽名等內容,用于實現安全通信和驗證身份。
  • -days 365:指定證書的有效期為365天,即一年。
  • -key my-key.pem:指定了私鑰文件的路徑和文件名,這里是 my-key.pem。生成自簽名證書需要使用私鑰進行簽名。
  • -in my-csr.pem:指定了證書簽名請求(CSR)文件的路徑和文件名,這里是 my-csr.pem。該 CSR 包含了公鑰以及與證書相關的信息。
  • -out my-cert.pem:指定了生成的自簽名證書的輸出文件路徑和文件名,這里是 my-cert.pem。生成的自簽名證書包含了公鑰、證書信息以及使用私鑰簽名后的數字簽名。

查看生成的證書

可以使用以下命令查看生成的證書內容:

#查詢根目錄下的證書
openssl x509 -in my-cert.pem -text -noout
#查詢/opt/ssl目錄下的證書
openssl x509 -in /opt/ssl/my-cert.pem -text -noout

圖片圖片

在根目錄下執行ls -l命令,可以看到ssl證書已經生成了;

ls -l | grep my

my-cert.pem:自簽名的ssl證書;

my-key.pem:私鑰文件;

my-csr.pem:證書簽名請求文件;

圖片圖片

let's encrypt

Let's Encrypt 是一個免費、自動化的證書頒發機構,提供了簡單、開放、免費的數字證書服務。以下是 Let's Encrypt 的一些關鍵特點:

  • 免費:Let's Encrypt 提供的證書完全免費,無需支付費用即可獲取,使得網站加密變得更加容易和經濟。
  • 自動化:Let's Encrypt 提供了自動化的證書簽發和更新機制,可以通過軟件工具自動獲取和更新證書,無需人工干預。
  • 開放:Let's Encrypt 的所有軟件工具和證書簽發流程都是開放源代碼的,任何人都可以查看和審查其代碼,確保了透明度和安全性。
  • 支持HTTPS:Let's Encrypt 的證書可以用于啟用網站的 HTTPS 加密連接,保護用戶數據在傳輸過程中的安全性和隱私。
  • 通用性:Let's Encrypt 的證書與所有現代瀏覽器和操作系統兼容,可以在各種平臺上廣泛使用。
  • 聯盟支持:Let's Encrypt 得到了一些知名互聯網公司和組織的支持,如 Mozilla、Google、Cisco 等。

安裝 Certbot

Certbot 是 Let's Encrypt 提供的官方工具,用于自動化獲取、驗證和安裝 SSL 證書,這里我使用的服務器操作系統是CentOS.

先添加 EPEL 存儲庫:Certbot 可以從 EPEL 存儲庫中獲取。如果你的系統已經安裝了 EPEL 存儲庫,可以忽略這一步。如果尚未安裝,可以使用以下命令安裝:

sudo yum install epel-release

安裝 Certbot:一旦安裝了 EPEL 存儲庫,就可以通過以下命令安裝 Certbot:

sudo yum install certbot

選擇驗證方式

在獲取證書的過程中,Let's Encrypt 提供了多種驗證方式,來驗證你對域名的控制權。這里我使用的cert版本是certbot 1.11.0,有兩種驗證方式:

圖片圖片

Spin up a temporary webserver (standalone):通過臨時啟動一個 web 服務器來完成認證。

工作過程:

  1. Certbot 會在你的服務器上臨時啟動一個簡單的 web 服務器,監聽80端口,該服務器僅用于在認證期間提供 ACME 驗證文件。
  2. 然后,證書頒發機構(CA)將向該臨時 web 服務器發送驗證請求,并要求在特定的 URL 上放置特定的驗證文件。
  3. Certbot 在收到驗證請求后,會將驗證文件放置在臨時 web 服務器的指定路徑上,以完成驗證。
  4. 一旦驗證通過,Certbot 將關閉臨時 web 服務器,并從證書頒發機構那里獲取 SSL 證書。

Place files in webroot directory (webroot):將認證文件放置在 web 服務器的根目錄下完成認證。

工作過程:

  1. 在這種方式下,你需要將你的 web 服務器配置為一個指定的根目錄,以便能夠從外部訪問其中的文件。
  2. Certbot 將生成特定的驗證文件,并將其保存在你 web 服務器的根目錄中(通常是通過文件系統的操作實現)。
  3. 然后,證書頒發機構(CA)將嘗試從互聯網上訪問這些文件,以完成認證流程。
  4. 一旦認證通過,Certbot 將從證書頒發機構那里獲取 SSL 證書,并將其保存到指定的位置供你使用。

standalone和webroot方式有什么區別?

這兩種認證方式在工作原理和最終目的上是相同的,都是為了完成對域名的控制權驗證以獲取 SSL 證書。然而,它們之間存在一些關鍵區別:

Standalone 模式:

  • 臨時啟動一個獨立的 web 服務器來處理驗證請求。
  • 不需要依賴現有的 web 服務器或文件結構,適用于沒有現成 web 服務器或無法修改現有配置的情況。
  • 但是需要注意的是,在使用 Standalone 模式時,確保 80 端口和 443 端口都沒有被占用,以便 Certbot 啟動臨時的 HTTPS 服務器進行驗證,否則可能會導致端口沖突,如下圖。

圖片圖片

Webroot 模式:

  • 將驗證文件放置在現有 web 服務器的根目錄下進行驗證。
  • 需要有現有的 web 服務器且能夠修改其配置來指定驗證文件的位置。
  • 更容易集成到已有的 web 服務器環境中,不會引起端口沖突。

建議:如果你有現成的 web 服務器并且能夠修改其配置,通常推薦使用 Webroot 模式。如果你的環境中沒有現成的 web 服務器或者無法修改配置,則可以選擇 Standalone 模式來完成 SSL 證書的獲取

運行 Certbot

在正式運行certbot,開始獲取證書前,需要做一點準備工作:

確定80、443端口可以通過防火墻

sudo firewall-cmd --list-port

如果80、443端口不能通過防火墻,可以依次執行下面的命令開放端口權限

sudo firewall-cmd --permanent --znotallow=public --add-port=80/tcp

確定https服務可以通過防火墻

sudo firewall-cmd --list-service

如果https不能通過防火墻,可以依次執行下面的命令開放服務權限

sudo firewall-cmd --permanent --add-service=https

通常情況下,數字證書只會分布給正常的域名服務,不會頒布給IP地址,你需要準備一個能夠正常訪問的域名;所以這里我是這樣做的:

我使用了一個名字叫做Natapp的內網穿透工具,在這個工具上的申請一個免費隧道,申請成功后配置一下映射到的本地的IP和端口,在服務器上啟動natapp的客戶端軟件,客戶端軟件啟動成功后,會分配一個隨機域名映射本地ip上,通過隨機分配的域名就可以把本地環境暴露到公網上,后面將針對這個隨機的域名來獲取一個免費的SSL證書;(這里需要提醒的是即使拿到ssl證書,也用不了,因為免費用戶不能使用https訪問,除非升級VIP);

Natapp官網地址:https://natapp.cn/

圖片圖片

圖片圖片

圖片圖片

在免費隧道配置頁里配置好本地IP和要映射的端口,保存后會分配 個authtoken,這個后面啟動客戶端軟件的時候要用;

下載客戶端軟件,并上傳服務器的/opt目錄下;

在/opt目錄下執行下面的命令來啟動natapp,這里就用到上面提到的authtoken;

./natapp -authtoken=xxxxx

natapp啟動成功后的樣子,本地IP地址192.168.111.166,80端口被映射到了unp8pa.natappfree.cc這個域名上;

圖片圖片

到這里準備工作差不多了,再梳理一下準備了哪些內容:

  1. 防火墻開通80、443端口、https訪問;
  2. 一個可以正常正常訪問的域名(natapp給的隨機域名,natapp重啟后,會變化的)

在上面選擇驗證方式部分,已經簡單講了一下certbot獲取數字證書的過程中的兩種驗證方式的工作過程,下面的示例我選擇使用Certbot 的 certonly 模式,手動獲取 SSL 證書:

certbot certonly

這是一個交互式的命令,正常情況下需要兩步就可以得SSL證書,第一步:選擇驗證方式;第二步:輸入準備好的有效域名;如果是certbot安裝后的第一次使用,可能還會要求輸入一個聯系郵箱地址;

圖片圖片

這里解讀一下,這段交互內容包含了哪些關鍵信息和過程:

  • Saving debug log to /var/log/letsencrypt/letsencrypt.log:這是 certbot 正在保存調試日志到指定目錄的提示。
  • How would you like to authenticate with the ACME CA?:certbot 詢問你想要如何與 ACME CA(Let's Encrypt)進行認證。
  • 1: Spin up a temporary webserver (standalone) 和 2: Place files in webroot directory (webroot):展示了兩種認證方式,一種是通過在臨時 web 服務器上進行認證,另一種是將文件放置在 web 根目錄下進行認證。你選擇了第一種方式(standalone)。
  • Requesting a certificate for unp8pa.natappfree.cc:certbot 開始為你請求 unp8pa.natappfree.cc 的證書。
  • Performing the following challenges: http-01 challenge for unp8pa.natappfree.cc:certbot 正在執行 HTTP-01 挑戰,這是 Let's Encrypt 使用的一種驗證方法,用于確認你對該域名的控制權。
  • IMPORTANT NOTES: 之后列出了幾個重要的提示:

Congratulations! Your certificate and chain have been saved at::恭喜你,你的證書和證書鏈已經保存在指定的路徑下。

/etc/letsencrypt/live/unp8pa.natappfree.cc/fullchain.pem:證書鏈的路徑。

/etc/letsencrypt/live/unp8pa.natappfree.cc/privkey.pem:私鑰的路徑。

Your certificate will expire on 2024-06-24.:你的證書將在 2024 年 6 月 24 日到期。

To obtain a new or tweaked version of this certificate in the future, simply run certbot again.:如果需要獲取新的證書或者修改當前證書,在未來只需要再次運行 certbot。

To non-interactively renew all of your certificates, run "certbot renew":如果需要無需交互地更新所有證書,可以運行 "certbot renew" 命令。

最后是一些關于支持 certbot 和 Let's Encrypt 的捐贈鏈接,以及 certbot 的工作結束提示。

進到/etc/letsencrypt/live/unp8pa.natappfree.cc目錄查看一證書文件,確實已經生成:

圖片

執行cat /etc/letsencrypt/live/unp8pa.natappfree.cc/README,查看README的內容,可以看到這幾個文件的解釋:

cat /etc/letsencrypt/live/unp8pa.natappfree.cc/README

  • privkey.pem:是用于你證書的私鑰,用于加密和解密通信內容。
  • fullchain.pem:是證書文件,通常在大多數服務器軟件中使用,包含了你的證書以及中間證書(intermediate certificate)鏈。
  • chain.pem:用于在 Nginx 版本大于等于 1.3.7 中進行 OCSP Stapling(在線證書狀態協議)的設置,可以提高證書驗證的效率和安全性。
  • cert.pem:原文的解釋是:該文件可能會破壞許多服務器的配置,因此在使用之前建議仔細閱讀更多相關文檔,需要注意的是,如果沒有進一步的了解和配置,最好不要使用該文件??粗透杏X很重要。事實上確實重要。cert.pem 文件是 SSL 證書鏈中的證書文件,包含了你的域名證書以及中間證書(intermediate certificate)。這個文件通常用于在服務器軟件(如 Nginx、Apache 等)中配置 SSL/TLS 加密連接。在證書鏈中,cert.pem 文件處于完整證書鏈的中間位置,用于構建信任鏈并確??蛻舳四軌蝌炞C你的 SSL 證書的有效性。因此,cert.pem 文件是 SSL/TLS 加密連接中的一個重要組成部分,它將你的域名證書與中間證書鏈接在一起,以確保瀏覽器和客戶端能夠正確地驗證和信任你的 SSL 證書。

配置服務器

Certbot 在成功獲取證書后,在你的 Web 服務器(如 Apache、Nginx 等)配置這些證書,配置完成后,重啟web服務器,就可以通過HTTPS安全的訪問網站了;

還記得不?客戶端瀏覽器是會檢查證書中的主機名與客戶端正在連接的服務器主機名是否匹配。如果你在web服務器軟件上配置的主機名和申請證書時用到的域名不一致就會有下面的提示:

圖片圖片

定期更新證書

Let's Encrypt 的證書有效期為90天,你需要定期更新證書以確保持續的加密連接。Certbot 可以自動處理證書的更新工作。

1、打開 Crontab 編輯器,運行以下命令來編輯當前用戶的 Crontab 文件:

crontab -e

2、添加定時任務,在打開的 Crontab 編輯器中,添加以下內容來創建一個每月執行一次的任務:

0 0 1 * * /usr/bin/certbot renew --quiet

這行指令表示在每個月的1號的凌晨0點0分執行 ,/usr/bin/certbot是certbot在服務器上安裝路徑;3、保存你的修改并退出編輯器。

4、查看crontab任務是否成功創建

crontab -l

圖片圖片

阿里云

自2021年01月01日起,每個阿里云個人或企業用戶(以實名認證為準)每年可以一次性申請20張免費Digicert DV單域名試用證書。據阿里云官網介紹免費證書一般僅用于個人網站或測試使用,不建議業務成熟的企業類型網站使用。如果你使用的是企業類型網站,建議購買付費證書。對于政府、金融、電子商務、醫療等組織或機構,推薦使用OV型證書或安全等級較高的EV型證書。

阿里云的SSL免費證書與付費證書的區別

圖片圖片

領取與使用規則

  • 每個阿里云個人或企業用戶(以實名認證為準),在每一個自然年內,可以通過數字證書管理服務的免費證書購買頁,免費獲取20個DV單域名證書。自然年是每年的01月01日~12月31日。免費領取的證書資源包在每個自然年末將未申請的額度清零(每年12月31日24:00:00,已簽發的證書不受影響),你需要等到第二年的1月1日00:00:00后申請領取當年的免費證書資源包
  • 同一實名認證的企業主體下有多個阿里云賬號時,僅支持其中一個賬號一次性申領20張免費證書
  • 免費證書僅支持綁定一個單域名,不支持綁定通配符域名或者IP。不支持后綴為特殊詞的域名申請免費證書。此類特殊詞包括但不限于:.edu、.gov、.org、.jp、.pay、.bank、.live和.nuclear
  • 免費證書不支持多張證書合并等高級特性
  • 免費證書不支持任何免費的人工技術支持或安裝指導
  • 免費證書吊銷成功后,不會返還消耗的免費證書個數。
  • 免費SSL證書領取后不支持取消訂單。
  • 證書服務周期支持3個月,過期后須重新申請和安裝證書
  • 在免費證書即將過期時(即證書剩余有效期小于30個自然日),可以使用剩余的免費證書個數申請簽發新的免費證書,替換即將過期的證書。

領取入口:

圖片圖片

圖片圖片

領取免費的證書完成后,提交申請,使用證書

圖片圖片

責任編輯:武曉燕 來源: 凡夫編程
相關推薦

2017-10-25 11:31:33

電腦電腦硬件散熱

2009-07-09 18:46:53

戴爾資金鏈管理

2011-06-07 10:15:36

2019-07-16 11:10:32

CIOHermes轉型

2021-02-08 17:19:02

英特爾

2011-10-31 16:57:56

2019-04-15 09:38:07

阿里云視頻資源包

2010-12-22 15:42:48

2018-02-23 11:38:26

Office 2019微軟Win10

2017-04-10 16:38:04

互聯網

2009-07-09 16:54:31

2010-03-26 17:41:25

服務器

2013-07-22 09:45:29

2015-07-31 17:32:20

容聯云通訊

2025-05-13 01:55:00

2023-08-14 17:58:13

RequestHTTP請求

2021-06-11 10:17:15

固件攻擊網絡安全網絡攻擊

2015-12-11 09:24:38

加密數據Linux

2021-07-01 09:08:58

德國電信流量網絡

2024-08-21 14:47:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美在线观看视频 | 中文字幕日韩欧美 | 九九久久国产 | 欧美v片| 中文字幕免费视频 | 91超碰caoporn97人人 | 日日干日日射 | 中文字幕日韩三级 | 一区二区在线 | 野狼在线社区2017入口 | 欧美精品一区在线 | 日韩精品视频在线 | 亚洲 欧美 激情 另类 校园 | 午夜99 | 国产精彩视频一区 | 超碰在线播 | 不卡一区二区在线观看 | 亚洲一区二区三区免费视频 | 久久综合一区 | zzzwww在线看片免费 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 午夜国产一级片 | 精品视频在线观看 | 精品一区二区视频 | 欧美日韩在线免费观看 | 久久精品久久精品 | 成人免费观看男女羞羞视频 | 国精产品一区一区三区免费完 | 狠狠的操| 中文成人无字幕乱码精品 | 欧美日韩精品久久久免费观看 | 国户精品久久久久久久久久久不卡 | 亚洲欧美成人影院 | 精品区| 久久天天躁狠狠躁夜夜躁2014 | 蜜桃毛片| 日韩一区二区在线观看视频 | 一区2区| 日韩精品免费 | 影音先锋欧美资源 | 欧美一区二区三区在线视频 |