柚子快報(bào)邀請(qǐng)碼778899分享:Https配置自簽名證書教程
柚子快報(bào)邀請(qǐng)碼778899分享:Https配置自簽名證書教程
簡(jiǎn)介:
通常我們?cè)陂_(kāi)發(fā)項(xiàng)目的過(guò)程中,一般都是使用的http來(lái)進(jìn)行測(cè)試;但當(dāng)部分項(xiàng)目上線或和其他第三方對(duì)接時(shí),需要用到https協(xié)議時(shí),此時(shí)可能就會(huì)有部分和http不同的請(qǐng)求方式,為此我們需要在開(kāi)發(fā)或測(cè)試環(huán)境部署一個(gè)https的協(xié)議環(huán)境,也就是所謂的給ng加上ssl驗(yàn)證;配置自簽名證書通常用于開(kāi)發(fā)、測(cè)試或在小型內(nèi)部網(wǎng)絡(luò)中部署安全的 HTTPS 服務(wù)。以下是如何創(chuàng)建并配置自簽名證書的步驟,以便在 Web 服務(wù)器(例如 Nginx、Apache)上使用。
1. 生成私鑰 (Private Key)
首先,你需要生成一個(gè)私鑰。這個(gè)私鑰將用來(lái)簽署你的自簽名證書。
openssl genrsa -out mydomain.key 2048
這將生成一個(gè) 2048 位的 RSA 私鑰,并將其保存到 mydomain.key文件中。
2.以命令的方式生成證書:
2.1. 生成證書簽名請(qǐng)求 (CSR)
接下來(lái),使用私鑰生成一個(gè)證書簽名請(qǐng)求 (CSR),其中包括有關(guān)你的組織和域名的信息。
openssl req -new -key mydomain.key -out mydomain.csr
執(zhí)行上述命令后,系統(tǒng)會(huì)要求你輸入以下信息:
Country Name (2 letter code) [XX]: 國(guó)家代碼,輸入兩位字母的國(guó)家代碼。例如,中國(guó)是 CN。 State or Province Name (full name) [Some-State]: 省或州的名稱。例如,北京市,可以填 Beijing。 Locality Name (eg, city) []: 城市名稱。例如,北京市,可以填 Beijing。 Organization Name (eg, company) [Internet Widgits Pty Ltd]: 組織或公司的名稱。例如,某某公司,可以填 Example Corp. Organizational Unit Name (eg, section) []: 部門名稱。例如,可以填 IT Department 或者留空。 Common Name (e.g. server FQDN or YOUR name) []: 服務(wù)器的完全限定域名 (FQDN)。這是非常重要的部分,填入你網(wǎng)站的域名,例如 www.example.com。 Email Address []: 聯(lián)系的電子郵件地址。例如 admin@example.com。 A challenge password []: 挑戰(zhàn)密碼。一般情況下,可以留空,直接按回車鍵。 An optional company name []: 可選的公司名稱。如果前面的“Organization Name”已經(jīng)填寫,這里可以留空。
示例填寫
以下是一個(gè)示例的填寫過(guò)程:
Country Name (2 letter code) [XX]: CN
State or Province Name (full name) [Some-State]: Beijing
Locality Name (eg, city) []: Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Example Corp
Organizational Unit Name (eg, section) []: IT Department
Common Name (e.g. server FQDN or YOUR name) []: www.example.com
Email Address []: admin@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
2.2. 創(chuàng)建自簽名證書
現(xiàn)在可以使用私鑰和 CSR 生成自簽名證書
openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt
這個(gè)命令生成了一個(gè)有效期為 365 天的自簽名證書,并將其保存到 mydomain.crt 文件中。
3.以配置文件的方式生成證書:
3.1.創(chuàng)建配置文件:
創(chuàng)建一個(gè)server.cnf配置文件,配置文件中填寫需要申請(qǐng)的證書必要參數(shù),詳細(xì)的參數(shù)不做具體說(shuō)明,感興趣的可以去官方文檔自行查看(以下配置文件修改common地址和DNS地址為你自己的域名后可以直接使用):
openssl-x509文檔:https://www.openssl.org/docs/man3.0/man1/openssl-x509.html
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = CN
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Beijing
localityName = Locality Name (eg, city)
localityName_default = Beijing
0.organizationName = Organization Name (eg, company)
0.organizationName_default = mydomain
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = mydomain
commonName = Common Name (eg, fully qualified host name)
commonName_default = www.mydomain.com
commonName_max = 64
emailAddress = Email Address
emailAddress_default = mydomain@email.com
emailAddress_max = 64
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.mydomain.com
DNS.2 = www.mydomain.com
IP.1 = 127.0.0.1
3.2. 創(chuàng)建自簽名證書
運(yùn)行openssl命令,指定私鑰文件和server.cnf配置文件,填寫需要輸出的證書名稱申請(qǐng)自簽證書:
openssl req -new -x509 -nodes -days 365 -keyout mydomain.key -out mydomain.crt -config server.cnf
4. 配置 Web 服務(wù)器使用自簽名證書
4.1.在 Nginx 中配置
打開(kāi) Nginx 配置文件(例如 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default)并添加或修改以下部分:
server {
listen 443 ssl;
server_name mydomain.com;
ssl_certificate /yourpath/mydomain.crt;
ssl_certificate_key /yourpath/mydomain.key;
location / {
# 配置你的網(wǎng)站路徑
}
}
確保將 /yourpath替換為實(shí)際證書和私鑰文件的路徑。
這里監(jiān)聽(tīng)的端口后的ssl就是指開(kāi)啟https的ssl驗(yàn)證功能,若不開(kāi)則刪除ssl即可。
4.2.在 Apache 中配置
打開(kāi) Apache 配置文件(例如 /etc/httpd/conf/httpd.conf 或 /etc/apache2/sites-available/000-default.conf),并添加或修改以下部分:
ServerName mydomain.com
SSLEngine on
SSLCertificateFile /path/to/mydomain.crt
SSLCertificateKeyFile /path/to/mydomain.key
DocumentRoot /var/www/html
# 配置你的網(wǎng)站路徑
同樣,將 /path/to/ 替換為實(shí)際文件的路徑。
5. 重新啟動(dòng) Web 服務(wù)器
在配置完成后,重新啟動(dòng) Web 服務(wù)器以使更改生效。
對(duì)于 Nginx:
sudo systemctl restart nginx
對(duì)于 Apache:
sudo systemctl restart apache2
6. 測(cè)試 HTTPS 訪問(wèn)
現(xiàn)在你可以通過(guò) https://mydomain.com 訪問(wèn)你的網(wǎng)站了。如果瀏覽器提示不受信任的證書,這正常,因?yàn)樽院灻C書未被官方信任的證書頒發(fā)機(jī)構(gòu) (CA) 簽署。
訪問(wèn)后會(huì)發(fā)現(xiàn)地址欄出現(xiàn)紅色提示地址不安全:
將證書導(dǎo)出到桌面
點(diǎn)擊導(dǎo)出的文件,點(diǎn)擊安裝證書,把證書安裝到受信任的根證書路徑
通過(guò)這些步驟,你應(yīng)該能夠使你的 Web 服務(wù)器通過(guò) HTTPS 提供一個(gè)安全受信的服務(wù)。
柚子快報(bào)邀請(qǐng)碼778899分享:Https配置自簽名證書教程
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。