openresty配置https自签名证书

一、在CentOS7服务器上安装openresty和openssl

注意:我的操作都是在root里面的,所以命令前面都不用加sudo

     1.通过在CentOS 系统中添加 openresty 仓库,便于未来安装或更新我们的软件包(通过 yum update 命令)

sudo yum install yum-utils

Is this ok [y/N]: y

sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

      2.安装OpenSSL

sudo yum install openssl

       3.安装openresty

sudo yum install openresty

Is this ok [y/N]: y

Is this ok [y/d/N]: y

二、openresty配置https自签名证书

1、在/usr/local/openresty/nginx/conf/目录下创建一个cert文件夹用来存放证书和服务器私钥

cd /usr/local/openresty/nginx/conf
mkdir cert
cd cert/

 

2、进入cert目录下, 创建服务器私钥,命令会提醒输入一个密码生成4096字节的服务器私钥:

openssl genrsa -des3 -out server.key 4096

输入密码:123456
确认密码:123456

 

3、创建签名请求的证书(CSR)

openssl req -new -key server.key -out server.csr
输入密码:123456
国家:CN
哪个州:Asia
城市:SHANGHAI
公司:SH
部门:SH
服务器名称:SH
邮箱:可不写
密码:yicon_2023_05_20
公司名称:Yicon

4、在加载SSL支持的Nginx服务器上,使用上述私钥时除去必须的口令(注意,所谓除去,其实就是将必须的私钥密码写入到了私钥文件里面了,更新了原来的私钥文件)
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
输入密码:123456

5、通过openssl的x509指令生成证书文件

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

回车自动生产,如图所示:

6、查看

ll

7、修改nginx配置文件

vim /usr/local/openresty/nginx/conf/nginx.conf

找到最下面的https配置

server {

listen       443 ssl;

server_name  localhost;

ssl_certificate      /usr/local/openresty/nginx/conf/cert/server.crt;

ssl_certificate_key  /usr/local/openresty/nginx/conf/cert/server.key;

ssl_session_cache    shared:SSL:5m;

ssl_session_timeout  5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

ssl_prefer_server_ciphers on;

}

然后再修改上面的http配置

注意这里没有使用80端口,因为80端口已经被占用了

server {

listen       82;

server_name  192.168.149.100;

rewrite ^/(.*)$ https://192.168.149.100:443/$1 permanent;

这个配置的意思访问http:192.168.149.100:82端口自动跳转到http://192.168.149.100

注意这个}不用写,因为已经有对应的了

如果还有其他的http服务需要访问的,那么也得按上面的https配置

以下是可选操作

这里是因为觉得这个nginx.conf太乱了,所以加了去匹配/usr/local/openresty/nginx/conf/conf.d这个路径下所有的.conf文件

在http下添加以下配置

include /usr/local/openresty/nginx/conf/conf.d/*.conf;

然后在/usr/local/openresty/nginx/conf/路径下创建conf.d文件夹

mkdir conf.d

cd conf.d

去编辑.conf配置文件

vim jira.conf

#jira配置文件
server {
listen 443 ssl;
server_name 192.168.1.56;
ssl_certificate /usr/local/openresty/nginx/conf/cert/server.crt;
ssl_certificate_key /usr/local/openresty/nginx/conf/cert/server.key;

#以下5行可加可不加 为优化选项
ssl_session_cache shared:SSL:5m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;


location / {
proxy_pass http://192.168.1.56:2800;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

 (仅供参考)

8、重载nginx并在本地机访问https网页

/usr/local/openresty/nginx/sbin/nginx -t

/usr/local/openresty/nginx/sbin/nginx -s reload

报错:

1.nginx: [emerg] unknown directive " " in /usr/local/openresty/nginx/conf/nginx.conf:110

nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test failed

解决方法:vim /usr/local/openresty/nginx/conf/nginx.conf和,进行编辑ssl_protocols和ssl_ciphers两行的空格有问题!!

2.nginx: [error] invalid PID number "" in "/usr/local/openresty/nginx/logs/nginx.pid"

killall -9 nginx

vim /usr/local/openresty/nginx/conf/nginx.conf

加一行:pid        /usr/local/openresty/nginx/logs/nginx.pid;

指定配置文件-c启动nginx并重载

/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf

/usr/local/openresty/nginx/sbin/nginx -s reload

在本地机访问页面,发现成功

 

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值