公司内网也有这个需求,就简单实现一下。
参考的都是网上的方案,一次过。
1,使用openssl建立服务器私钥(需要输入密码,请记住这个密码)生成RSA密钥
>openssl genrsa -des3 -out server.key 1024
2,生成一个证书请求
>openssl req -new -key server.key -out server.csr
这里需要上一步输入的密码。
#需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。
3,使用下面命令可以删除私钥中的密码,不然每次reload nginx配置时候都要你验证这个PAM密码的。
>openssl rsa -in server.key -out server.key
4,以下命令生成自签名证书
>openssl x509 -req -days 3650 -sha256-in server.csr -signkey server.key -out server.crt
5,新建一个目录/etc/nginx/key/,然后将server.crt和server.key拷贝到/etc/nginx/key/
6,将nginx.conf的配置里,加上证书和相关的配置。
server { listen 8443; server_name _; root /usr/share/nginx/html; ssl on; ssl_certificate /etc/nginx/key/server.crt; ssl_certificate_key /etc/nginx/key/server.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; location / { } }
7,样子就出来了,尽管是https,但由于是自签名,依然会显示不安全的。