客戶端如何驗證服務器的證書呢?服務器自己的證書必須經過某“權威”證書的簽名,而這個“權威”證書又可能經過更權威的證書簽名,這么一級一級追溯上去,最頂層那個最權威的證書就稱為根證書。根證書直接內置在瀏覽器中,這樣,瀏覽器就可以利用自己自帶的根證書去驗證某個服務器的證書是否有效。
如何創建一個自簽名的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
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
server.crt和server.key就是你的nginx需要的證書文件。
4.配置
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
。