客戶端如何驗證服務器的證書呢?服務器本身的證書必須通過某「權威」證書的簽名,而這個「權威」證書又可能通過更權威的證書籤名,這麼一級一級追溯上去,最頂層那個最權威的證書就稱爲根證書。根證書直接內置在瀏覽器中,這樣,瀏覽器就能夠利用本身自帶的根證書去驗證某個服務器的證書是否有效。nginx
如何建立一個自簽名的SSL證書步驟:
1.建立Key:
openssl genrsa -des3 -out server.key 2048
得到了server.key文件,之後給nginx使用,每次reload nginx配置時候,都要你驗證這個PAM密碼的。
去除輸入密碼的步驟能夠使用如下命令:
openssl rsa -in server.key -out server.key
瀏覽器
2.建立簽名請求:
openssl req -new -key server.key -out server.csr
其中Country Name填CN,其餘都是可選。一路回車便可,生成server.csr文件。服務器
4.用Key簽名證書:
openssl req -new -x509 -key server.key -out ca.crt -days 3650
session
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
code
server.crt和server.key就是你的nginx須要的證書文件。server
4.配置ip
server { listen 443 ssl; #server_name localhost; ssl_certificate /data/ssl/server.crt; ssl_certificate_key /data/ssl/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location /hello { default_type text/plain; #echo hello world; return 200 "hello world"; } }
5.重啓nginx以後,請求https://wyc.com/hello
獲得hello world
。ssl