一般我们搭建小程序或者是网站所使用的证书都是购买的第三方信任认可的证书。但是对于有些测试业务用途的证书,我们没有必要购买付费证书,而可以直接使用服务器OPENSSL自签名证书。如果自签证书用于公网的话肯定会提示不受信任,但是如果我们自己用测试业务那没有问题的。
第一、什么是自签证书
所谓的自签证书是没有得到官方认可的证书,由我们使用方在服务器上自己签署的,在浏览器中打开是会提示不受信任,但是正常的我们测试用途是没有问题的。
第二、申请自签证书条件
我们如果有需要再服务器上申请SSL证书,我们需要提前有在服务器中安装过openssl软件包。我们在输入openssl version,确认后看是否有版本型号看到,如果安装了软件包,则系统将打印OpenSSL版本,否则您将看到类似openssl command not found。
如果没有安装,看下面命令安装:
Ubuntu和Debian
sudo apt install openssl
Centos和Fedora
sudo yum install openssl
第三、申请自签证书的流程
要创建新的自签名SSL证书,我们需要用到openssl req命令:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 365 \
-nodes \
-out example.crt \
-keyout example.key
解释各参数的含义:
-newkey rsa:4096-创建新的证书请求和4096位RSA密钥。默认值为2048位。
-x509 -创建X.509证书。
-sha256 -使用265位SHA(安全哈希算法)。
-days 365 -认证证书的天数。 365是1年。可以使用任何正整数。
-nodes -创建没有密码的密钥。
-out example.crt -指定将新创建的证书写入的文件名。可以指定任何文件名。
-keyout example.key -指定要写入新创建的私钥的文件名。可以指定任何文件名。
我们根据提示设置证书信息,直接回车也可以的。
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:laobuluo.com
Email Address []:
root@ubuntu:~# ls
example.crt example.key
root@ubuntu:~#
完成后,我们可以看到根目录有2个文件,尤其是在Common Name需要输入你要设置创建证书的项目域名。
example.crt example.key
这2个文件就是自签证书文件。
这样,我们就可以利用openssl创建自签证书用于本地或者局域网的测试业务用途。但是如果要真实的业务用途,还是要用到付费证书。