linux自建https证书
一、生成单向认证的https证书
建立服务器私钥,生成RSA秘钥。
会有两次要求输入密码,
然后获得了一个server.key文件.
以后使用此文件(通过openssl提供的命令或API)可能经常回要求输入密码,如果想去除输入密码的步骤可以使用以下命令:
创建服务器证书的申请文件server.csr
Country Name填CN,Common Name填主机名也可以不填,如果不填浏览器会认为不安全,其他可以不填
填入密码
对于上面的秘钥进行ssl加密
使用上面的秘钥和CSR对正式进行签名
创建自当前日期起有效期为期十年的服务器证书server.crt:
这样证书就建好了。
~ 是 home目录的意思。
-
如果以超级用户root账号登陆:~ 是 /root目录
-
如果以普通用户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
成功