1. 安装nginx
参考博文:centos7中nginx安装 需要安装 openssl 和 openssl-dev,nginx编译时需要带上 with-http_ssl_module 模块
2. 生成证书
在 nginx安装目录下(如:/usr/local/nginx)创建一个ssl目录,用来存放证书文件,然后进入ssl目录,执行后面证书生成相关指令。
证书相关密码设置: SSLPWD=“123456”
2.1 创建私钥
执行命令:
openssl genrsa -des3 -passout pass:$SSLPWD -out demo.key 1024
- -des3:使用des3 cbc模式对私钥文件进行加密
- demo.key 是私钥文件名,可以自定义
- $SSLPWD 为设置的私钥密码,这里指123456
- -passout 通过该参数代替shell 进行密码输入,否则会提示输入密码
2.2 创建crs证书
执行命令:
openssl req -new -key demo.key -passin pass:$SSLPWD -subj "/C=CN/ST=Beijing/O=RS/OU=RS/CN=RDI-SERVER/emailAddress=Rs@163.com" -out demo.csr
- 其中key文件就是第一步生成的私钥,demo为自定义的文件名
- passin 参数代替shell自动输入密码,否则会提示输入密码
- -subj 参数,设置其他相关信息
完成以上两步后,ssl中会生成demo.csr和demo.key两个文件:如下图
2.3 去除密码
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码,执行以下命令:
openssl rsa -in demo.key -passin pass:$SSLPWD -out demo.key
2.4 生成crt证书
执行命令:
openssl x509 -req -days 3650 -in demo.csr -signkey demo.key -out demo.crt
- x509 命令主要用于创建、修改x509证书
- days 设置证书有效时间(天数)
证书生成完毕,我们在ssl文件夹中可以看到生辰的证书文件,我们要用到的就是demo.crt和demo.key
3. 修改nginx配置
在nginx.conf配置文件中添加一个如下server:
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /usr/local/nginx/ssl/demo.crt;
ssl_certificate_key /usr/local/nginx/ssl/demo.key;
location / {
root html;
index index.html index.htm;
}
}
启动nginx后,访问正常启动nginx后,使用 https://127.0.0.1:443 访问,可以正常跳转
|