客户端如何验证服务器的证书呢?服务器本身的证书必须通过某“权威”证书的签名,而这个“权威”证书又可能通过更权威的证书签名,这么一级一级追溯上去,最顶层那个最权威的证书就称为根证书。根证书直接内置在浏览器中,这样,浏览器就能够利用本身自带的根证书去验证某个服务器的证书是否有效。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