最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略掉浏览器的不信任警报即可。下面是颁发证书和配置过程。
1、首先确保机器上安装了openssl和openssl-devel
# yum install openssl
# yum install openssl-devel
2、生成证书
首先,进入你想创建证书和私钥的目录,例如: # cd /etc/nginx/ 创建服务器私钥,命令会让你输入一个口令: # openssl genrsa -des3 -out server.key 1024 创建签名请求的证书(CSR): # openssl req -new -key server.key -out server.csr 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: # cp server.key server.key.org # openssl rsa -in server.key.org -out server.key 最后标记证书使用上述私钥和CSR: # openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
3、配置Nginx,让其包含新标记的证书和私钥
server { server_name YOUR_DOMAINNAME_HERE; listen 443; ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; }