一、生成私钥(server.key)及crt证书(server.crt)
首先需要创建一个目录来存放SSL证书相关文件
$ cd /etc/nginx
$ sudo mkdir ssl
$ cd ssl
1. 生成server.key
$ openssl genrsa -des3 -out server.key 2048
以上命令是基于des3算法生成的rsa私钥,在生成私钥时必须输入至少4位的密码。
2. 生成无密码的server.key
$ openssl rsa -in server.key -out server.key
3. 生成CA的crt
$ openssl req -new -x509 -key server.key -out ca.crt -days 3650
4. 基于ca.crt生成csr
$ openssl req -new -key server.key -out server.csr
命令的执行过程中依次输入国家、省份、城市、公司、部门及邮箱等信息。
5. 生成crt(已认证)
$ openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
二、配置Nginx并支持HTTPS协议
前面我们已经生成的用于支持HTTPS协议的SSL相关证书,接下来我们需要添加Nginx配置使得其能够真正支持HTTPS协议。
支持HTTPS协议的Nginx配置如下所示:
server {
listen 80;
server_name localhost;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/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 /my-project/ {
alias /home/lvcy/my-project/dist/;
}
}