Linux自建ssl证书,linux自建https证书

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

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

会有两次要求输入密码,

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

f64d2571d3ed0300f87a974f50c1bf06.png

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

559bb5ba363effa610a06012ff0ad231.png

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

1bbc41b79fec6cd7ee1b760d486fc34e.png

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

51a1e2e4729ac5898cc50838b8615727.png

填入密码

8445d8be753e30f38ee703fe07a08fbb.png

c0a9ac027b81f9d2bf93310a8fe899ca.png

015ab62dcb80dc9c47484f731fea48ac.png

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

ca7a3d2edf8be94edd2eb7014bb4cac9.png

使用上面的秘钥和CSR对正式进行签名

创建自当前日期起有效期为期十年的服务器证书server.crt:

1590cbfeb4356cf8e2bbd9a7312f9603.png

这样证书就建好了。

~ 是 home目录的意思。

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

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

移动到home目录

aecee8807061c6fc7612f940c88cbfac.png

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

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

5cb4d0caecb0fc68c869e3ca920bd8dc.png

2d4cfdaaaedf9ff04786a9e251b43711.png

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虚拟机中配置的域名

731330a78b3ac6bee19dd7ab9dfa38c9.png

成功