自行頒發(fā)不受瀏覽器信任的SSL證書
手動頒發(fā)
xshell登錄服務(wù)器,使用openssl生成RSA密鑰及證書
# 生成一個RSA密鑰
$ openssl genrsa -des3 -out tfjybj.key 1024
# 拷貝一個不需要輸入密碼的密鑰文件
$ openssl rsa -in dmsdbj.key -out tfjybj_nopass.key
# 生成一個證書請求
$ openssl req -new -key tfjybj.key -out tfjybj.csr
這里會提示輸入省份、城市、域名等信息,email得是域名后綴。這樣就生成一個csr文件,提交給ssl提供商的時候就是這個csr文件。
(這里由于我沒有截圖,所以從網(wǎng)上找了一個圖片,需要替換的是下面的33iq,換成tfjybj)
中間輸入密碼的時候,沒有什么顯示,不過就那么輸入就好
# 自己簽發(fā)證書
$ openssl x509 -req -days 365 -in tfjybj.csr -signkey tfjybj.key -out tfjybj.crt
把生成的證書放到nginx配置文件同級目錄;
nginx配置
編輯nginx配置文件 nginx.conf,加https協(xié)議
server {
server_name tfjybj.com;
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/tfjybj.crt;
ssl_certificate_key /usr/local/nginx/conf/tfjybj_nopass.key;
# 若ssl_certificate_key使用tfjybj.key,則每次啟動Nginx服務(wù)器都要求輸入key的密碼。
(開始我不知道,納悶為啥啟動nginx、關(guān)閉nginx都要輸入密碼)
}
重啟Nginx
自己頒發(fā)的SSL證書能夠?qū)崿F(xiàn)加密傳輸功能,但瀏覽器并不信任,會給出提示:
通過第三方頒發(fā)證書–阿里云
頒發(fā)證書
登錄阿里云管理控制臺,【云盾】菜單選擇【證書服務(wù)】,選擇購買證書;
我弄得免費版的做的測試,申請之后,經(jīng)過一兩天的審核,然后就可以下載證書了。下載解壓后是兩個文件,一個key結(jié)尾,私鑰,一個是pem結(jié)尾,是公鑰;
配置nginx
文件說明:
證書文件”申請的證書名字.pem”,包含兩段內(nèi)容,請不要刪除任何一段內(nèi)容。
如果是證書系統(tǒng)創(chuàng)建的CSR,還包含:證書私鑰文件”申請的證書名字.key”。
( 1 ) 在Nginx的安裝目錄下創(chuàng)建cert目錄,并且將下載的全部文件拷貝到cert目錄中。如果申請證書時是自己創(chuàng)建的CSR文件,請將對應(yīng)的私鑰文件放到cert目錄下并且命名為”申請的證書名字.key”;
( 2 ) 打開 Nginx 安裝目錄下 conf 目錄中的 nginx.conf 文件,找到:
# HTTPS server
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}
( 3 ) 將其修改為 (以下屬性中ssl開頭的屬性與證書配置有直接關(guān)系,其它屬性請結(jié)合自己的實際情況復(fù)制或調(diào)整) :
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/申請的證書名字.pem;
ssl_certificate_key cert/申請的證書名字.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
保存退出。
( 4 )重啟 Nginx。
( 5 ) 通過 https 方式訪問您的站點
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。