Nginx配置https訪問

1.      前期的準備工作:

安裝openssl和nginx的https模塊

cd  ~/
mkdir ssl
cd ssl
mkdir demoCA
cd demoCA
mkdir newcerts
mkdir private
touch index.txt
echo '01' > serial

2.      製作CA證書(這個是信任的起點,根證書,所有其他的證書都要經過CA的私鑰簽名)。

生成 CA私鑰: ca.key

openssl genrsa -des3 -out ca.key 2048

這樣是生成rsa私鑰,`des3`算法,openssl格式,2048位強度。`ca.key`是密鑰文件名。爲了生成這樣的密鑰,需要一個至少四位的密碼。

另外可以通過以下方法生成沒有密碼的key:

opensslrsa -in ca.key -out ca_decrypted.key

生成 CA根證書的公鑰 ca.crt

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

3.      製作網站的https證書,並用CA簽名認證。

假設我們需要爲 test.com 域名製作證書,先生成 test.com的證書私鑰 test.com.pem。

   命令:

openssl genrsa -des3 -out test.com.pem 1024

   生成無密碼的私鑰:

openssl rsa -in test.com.pem -out test.com.key

生成 csr 簽名請求:

openssl req -new -key test.com.pem -out test.com.csr

這裏需要輸入國家,地區,組織,email等。最重要的是**common name**,可以寫你的名字或者域名。如果爲了 https 申請,這個必須和域名一樣,即,這裏要寫test.com,否則會引發瀏覽器警報,這裏可以用 *.test.com 來做泛域名證書。

最後要用CA證書進行簽名:

openssl ca -policy policy_anything -days 1460 -cert./demoCA/ca.crt -keyfile ./demoCA/ca.key -in test.com.csr -out test.com.crt

把 ca.crt 的內容追加到 test.com.crt後面,因爲有些瀏覽似乎不支持:

cat demoCA/ca.crt >> test.com.crt

4.      nginx配置

server {
  listen 443;
  server_name test.com www.test.com;
 
  root html;
  index index.html index.htm;
 
  ssl on;                                     #開啓ssl
  ssl_certificate /PATH/TO/test.com.crt;    #服務器證書位置
  ssl_certificate_key/PATH/TO/test.com.key;  #服務器私鑰
 
  ssl_session_timeout 5m;                     #session有效期,5分鐘
 
  ssl_protocols SSLv3 TLSv1TLSv1.1 TLSv1.2;          #ssl協議
  ssl_ciphers"HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";  #ssl加密算法 
  ssl_prefer_server_cipherson;
 
  location / {
    try_files $uri $uri/ =404;
  }      
}


1.      其他,其實很多時候,並不需要加密的 key,所以像這面這麼做就好了。

命令如下:

 cd ~/
 mkdir ssl
 cd ssl
 mkdir demoCA
 cd demoCA
 mkdir newcerts
 mkdir private
 touch index.txt
 echo '01' > serial
 openssl genrsa -out ca.key 2048
 openssl req -new -x509 -days 3650 -keyca.key -out ca.crt
 cd ..
 openssl genrsa -out test.com.key 2048
 openssl req -new -key test.com.key -out test.com.csr
 openssl ca -policy policy_anything  -days1460 -in test.com.csr -out test.com.crt -cert ./demoCA/ca.crt -keyfile./demoCA/ca.key

原文文章鏈接:http://www.tuicool.com/articles/NrmE3e

發佈了21 篇原創文章 · 獲贊 12 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章