linux自建https证书

一、生成单向认证的https证书

建立服务器私钥,生成RSA秘钥。

会有两次要求输入密码,

然后获得了一个server.key文件. 

以后使用此文件(通过openssl提供的命令或API)可能经常回要求输入密码,如果想去除输入密码的步骤可以使用以下命令:

创建服务器证书的申请文件server.csr

 Country Name填CN,Common Name填主机名也可以不填,如果不填浏览器会认为不安全,其他可以不填

填入密码

 

对于上面的秘钥进行ssl加密

使用上面的秘钥和CSR对正式进行签名
创建自当前日期起有效期为期十年的服务器证书server.crt:

这样证书就建好了。

~ 是 home目录的意思。

  1. 如果以超级用户root账号登陆:~ 是 /root目录

  2. 如果以普通用户name登陆:~是 /home/name目录

移动到home目录

打开你的nginx配置文件,搜索443找到https的配置,去掉这段代码的注释,按照自己路径进行更改:

把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用

location 照着之前的server写

将ssl_certificate改为server.crt的路径,将ssl_certificate_key改为server.key的路径. 

nginx -s reload 重载配置 ,nginx的https就可以使用了,默认443端口.

如果出现报错信息:

nginx: [emerg] BIO_new_file("/user/local/nginx/temp/server.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/user/local/nginx/temp/server.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

把server.crt 和server.key 文件放在nginx/conf文件夹下。(和nginx.conf文件同一文件夹)

ssl_certificate  server.crt;
ssl_certificate_key  server.key;

修改域名,参考--本机如何访问vmware虚拟机中配置的域名

https://jingyan.baidu.com/article/2d5afd690d7f6d85a2e28ec6.html

成功

原文地址:https://www.cnblogs.com/hoje/p/11890049.html