SSL

SSL(Secure Sockets Layer 安全套接字協(xié)議),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 如何在私有網(wǎng)站使用并創(chuàng)建https的證書

如何在私有網(wǎng)站使用并創(chuàng)建https的證書

時間:2023-07-24 15:24:01 | 來源:網(wǎng)站運營

時間:2023-07-24 15:24:01 來源:網(wǎng)站運營

如何在私有網(wǎng)站使用并創(chuàng)建https的證書:證書是如何生成的及ssl加密原理是什么樣的?

SSL

SSL(Secure Sockets Layer 安全套接字協(xié)議),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。TLS與SSL在傳輸層與應(yīng)用層之間對網(wǎng)絡(luò)連接進(jìn)行加密。在我們訪問一個https的域名的時候,在這之間一共觸發(fā)了多少個流程?




主要步驟如下:

1. 客戶端請求服務(wù)器獲取 證書公鑰

2. 客戶端(SSL/TLS)解析證書(無效會彈出警告)

3. 生成隨機值

4. 用 公鑰加密 隨機值生成密鑰

5. 客戶端將 秘鑰 發(fā)送給服務(wù)器

6. 服務(wù)端用 私鑰 解密 秘鑰 得到隨機值

7. 將信息和隨機值混合在一起 進(jìn)行對稱加密

8. 將加密的內(nèi)容發(fā)送給客戶端




在客戶端和服務(wù)端進(jìn)行交互中一共涉及了兩種類型的加密算法,一種叫做非對稱加密,一種叫做對稱加密。

什么是對稱加密?




簡單說就是有一個密鑰,它可以加密一段信息,也可以對加密后的信息進(jìn)行解密,和我們?nèi)粘I钪杏玫蔫€匙作用差不多。

加密和解密使用同一個字符串, 在上述例子中隨機字符串為加密和解密的鑰匙, 最常見的 對稱加密 算法主要有 DES、3DES、AES。




什么是非對稱加密


非對稱加密算法,又稱為 公開密鑰加密算法。它需要兩個密鑰,一個稱為公開密鑰 (public key),即 公鑰,另一個稱為私有密鑰 (private key),即 私鑰。因為加密解密使用的是兩個不同的密鑰,所以這種算法稱為非對稱加密算法。




* 如果使用 公鑰 對數(shù)據(jù) 進(jìn)行加密,只有用對應(yīng)的 私鑰 才能 進(jìn)行解密。

* 如果使用 私鑰 對數(shù)據(jù) 進(jìn)行加密,只有用對應(yīng)的 公鑰 才能 進(jìn)行解密。

常見的 非對稱算法 主要有 RSA、DSA 等

了解了https的工作原理以后, 我們需要在內(nèi)網(wǎng)使用https該如何使用, 證書又是從哪里來呢?這樣我們就需要去了解

openssl。




什么是證書簽名請求(csr)




CSR是英文[Certificate Signing Request]的縮寫,即證書簽名請求。CSR文件是申請SSL證書時所需要的一個數(shù)據(jù)文件,下面將為你詳細(xì)介紹CSR文件的具體內(nèi)容。




數(shù)字證書的核心,其實就是非對稱加密,也就是公私鑰對加密。非對稱加密之所以安全,前提條件是用戶必須要保障私鑰的安全。

因此在用戶向CA申請數(shù)字證書時,用戶首先需要在自己的電腦中先產(chǎn)生一個公私鑰對。用戶需要保管好自己的私鑰,然后再把公鑰和你的個人信息發(fā)送給CA機構(gòu),

CA機構(gòu)通過你的公鑰和個人信息最終簽發(fā)出數(shù)字證書。




而CSR文件,其實就是包含了用戶公鑰和個人信息的一個數(shù)據(jù)文件。

用戶產(chǎn)生出這個CSR文件,再把這個CSR文件發(fā)送給CA,CA就會根據(jù)CSR中的內(nèi)容來簽發(fā)出數(shù)字證書。




當(dāng)組織需要簽署 SSL 證書時,他們向中間證書頒發(fā)機構(gòu)發(fā)送證書簽名請求 (CSR)。作為中間證書頒發(fā)機構(gòu)發(fā)送的響應(yīng)

* 由中間 CA 簽署的 SSL 證書。

* 由根 CA 簽署的中間 CA 證書。

以下命令將為組織生成私鑰(.key)以及證書簽名請求(.csr)

openssl req -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr證書簽名請求輸出兩個文件。一個是[organization_domain_name].crt,另一個是intermediate.crt(如果您的中間 CA 是 GoDaddy,則稱為gd-bundle-g2-.crt)

* 計算機可以信任intermediate(中間) CA 的證書,因為它是由root(根) CA 簽署的,root(根) CA 最初在制造級別嵌入到 Web 瀏覽器中。

* 因此,現(xiàn)在可以信任組織的 SSL 證書,因為intermediate(中間) CA 證書是可信任的。上面的 信任層次稱為信任鏈。

https 工作原理

當(dāng)瀏覽器向站點發(fā)送 HTTPS 請求時,它會[organization_domain_name].crt和中間件.crt發(fā)送回瀏覽器?,F(xiàn)在中間件.crt可以被瀏覽器中列出的根CA信任,而[organization_domain_name].crt可以被瀏覽器信任intermediate.crt.最終,組織的公鑰由瀏覽器提取。










什么是crt文件

crt和密鑰文件代表證書的兩個部分,key是證書的私鑰,crt是簽名的證書。

這只是生成證書的一種方法,另一種方法是將它們都包含在一個pem文件中,或者將另一個包含在p12容器中。

CA根證書的生成步驟

生成 RSA 私鑰和自簽名證書

# Generate CA private key openssl genrsa -des3 -passout pass:demo -out ca.key 2048# Generate CSR openssl req -new -key ca.key -out ca.csr系統(tǒng)將提示您輸入密碼,我建議不要跳過并確保安全。

密碼短語將阻止任何獲得您的私鑰的人, 來生成他們自己的根證書。輸出應(yīng)如下所示:

Generating RSA private key, 2048 bit long modulus.................................................................+++.....................................+++e is 65537 (0x10001)Enter pass phrase for ca.key:Verifying - Enter pass phrase for ca.key:然后我們生成一個根證書:

系統(tǒng)將提示您輸入您的私鑰(您剛剛選擇的)的密碼和一系列問題。這些問題的答案并不那么重要。

他們在查看證書時會出現(xiàn),而您幾乎永遠(yuǎn)不會這樣做。

我建議在其他證書列表中將通用名稱設(shè)為您可以識別為根證書的名稱。這真的是唯一重要的事情。

openssl req -x509 -new -nodes -key ca.key -sha256 -days 1825 -out ca.pem# 或者使用下面 生成crt文件# Generate Self Signed certificate(CA 根證書) openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt Enter pass phrase for ca.key:You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]:CNState or Province Name (full name) [Some-State]:GuangdongLocality Name (eg, city) []:ShenZhengOrganization Name (eg, company) [Internet Widgits Pty Ltd]: demoOrganizational Unit Name (eg, section) []: demoCommon Name (e.g. server FQDN or YOUR name) []: demo1Email Address []:1062186165@qq.com您現(xiàn)在應(yīng)該有兩個文件:ca.key(私鑰)和 ca.pem(根證書)還有一個 ca.csr。




用戶證書的生成步驟




服務(wù)器端用戶證書:

# private key openssl genrsa -aes256 -passout pass:111111 -out server.key 2048# generate csr openssl req -new -key server.key -out server.csr 使用 CA 證書及CA密鑰 對請求簽發(fā)證書進(jìn)行簽發(fā),生成 x509證書

# generate certificate openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key # 或者使用openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca.key -passin pass:111111 -CAcreateserial -out server.crt 客戶端用戶證書:

openssl genrsa -des3 -out client.key 1024 openssl req -new -key client.key -out client.csr openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key生成pem格式證書:

有時需要用到pem格式的證書,可以用以下方式合并證書文件(crt)和私鑰文件(key)來生成

cat client.crt client.key> client.pemcat server.crt server.key > server.pem* 客戶端證書包含 client.pem server.key server.csr server.crt

* 服務(wù)端證書包含 server.pem client.key client.csr client.crt




安裝根證書

將根證書添加到 macOS 鑰匙串




1。打開 macOS 鑰匙串應(yīng)用

2。轉(zhuǎn)到文件 > 導(dǎo)入項目...

3。選擇您的私鑰文件(即 ca.pem)

4。搜索您回答的任何內(nèi)容作為上面的通用名稱名稱













5。雙擊列表中的根證書

6。展開Trust部分

7。將When using this certificate:選擇框更改為“始終信任”













8。關(guān)閉證書窗口

9。它會要求你輸入密碼(或掃描你的手指),這樣做








如何在自己的私有網(wǎng)站創(chuàng)建https的證書




現(xiàn)在我們是所有設(shè)備上的 CA,我們可以為任何需要 HTTPS 的新開發(fā)站點簽署證書。

首先,我們創(chuàng)建一個私鑰:

openssl genrsa -out private.key 2048然后我們創(chuàng)建一個CSR:

openssl req -new -key private.key -out cert.csr您將得到與上述相同的所有步驟,而且您的輸出證書的內(nèi)容并不重要。

因為您不會在其他的列表中查看此證書。

接下來,我們將使用 CSR、CA 私鑰、CA 證書和配置文件創(chuàng)建證書,但首先我們需要創(chuàng)建該配置文件。需要配置文件來定義在證書的本節(jié)(即擴展名)中定義的主題備用名稱(SAN)擴展名:

我們將運行該openssl x509命令來創(chuàng)建證書:

openssl x509 -req -in cert.csr /-CA ca.pem -CAkey ca.key -CAcreateserial /-out server.crt -days 825 -sha256 /-extfile server.ext配置文件 (server.ext) 包含以下內(nèi)容:

subjectKeyIdentifier = hashbasicConstraints = critical, CA:truekeyUsage = critical, digitalSignature, nonRepudiation, keyEncipherment, keyCertSignsubjectAltName = @alt_names[alt_names]# 需要添加https的域名DNS.1 = www.baidu.com我現(xiàn)在有三個文件:private.key(私鑰)、server.csr(證書簽名請求)和 server.crt(簽名證書)。




驗證




使用golang 驗證

import ( "fmt" "net/http")func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hi, This is an example of https service in golang!")}func main() { http.HandleFunc("/", handler) err := http.ListenAndServeTLS(":443", "server.crt", "private.key", nil) if err != nil { panic(err) }}訪問https://localhost, 此時訪問本地localhost因為不信任的問題訪問不通,需要在mac上面信任這個證書才行。













在自己的mac電腦上面導(dǎo)入ca.pem證書,并信任此證書。










再次訪問當(dāng)前的頁面, 此時已經(jīng)成功訪問。












關(guān)鍵詞:創(chuàng)建,證書,使用,私有

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉