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