使用openssl创建一个自签名https证书,并配置到nginx里面


提示:首先要安装openssl的服务,现在centos默认都会安装该服务。

1. 使用openssl建立服务器私钥(需要输入密码,请记住这个密码)生成RSA密钥

先创建一个目录,比如ssl目录,执行如下代码,2048表示私钥的长度,如果配置成1024会提示秘钥太短的问题,建议最小2048位。

openssl genrsa -des3 -out server.key 2048

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. 将server.crt和server.key拷贝至Nginx的conf目录的ssl文件夹下面

提示:放置在别的文件夹也是可以的,不过就要写全路径了,放在conf下面,可以配置相对路径,这个在下面的配置中可以看到。

在这里插入图片描述

6. 将nginx.conf的配置里,加上证书和相关的配置。

主要对应server中的部分,其他部分照常配置即可。

	server {
	    listen       443 ssl;
	    server_name  localhost;
	    charset utf-8;
	   
	    #ssl证书
	    ssl_certificate   ssl/server.crt;       
	    ssl_certificate_key  ssl/server.key;

	    location / {
		root   html;
		try_files $uri $uri/ /index.html;
		index  index.html index.htm;
	    }
		    
	    error_page   500 502 503 504  /50x.html;
	    location = /50x.html {
	       root   html;
	    }
	}
    server {
       listen 80;
       server_name localhost;
       #将请求转成https
       rewrite ^(.*)$ https://$host$1 permanent;
    }

7. 样子就出来了,尽管是https,但由于是自签名,依然会显示不安全

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/bacawa/article/details/129187620