正规的证书须要向CA机构申请,通常流程为:先生成一个私钥,而后用私钥生成证书请求(证书请求里应含有公钥信息),再利用证书服务器的CA根证书来签发证书。可是向CA申请证书一般难免费,咱们能够经过openssl自签名的形式生成ssl证书,实现https访问效果,.crt结尾的是证书文件,.key结尾的是密钥文件,.csr结尾的是证书请求文件。node
basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = www.test.com DNS.2 = *.test.com IP.1 = 127.0.0.1 IP.2 = 192.168.127.33
注:alt_names中既能够填域名,也能够填ip地址,根据实际状况,按照上述样式继续添加git
openssl req -x509 -newkey rsa:2048 -out MyCA.crt -outform PEM -keyout MyCA.key -days 3650 -verbose -nodes -sha256
注:运行上述命令后,须要根据提示输入信息,随意填写,可是要记住填的内容浏览器
openssl req -newkey rsa:2048 -keyout MyServer.key -out MyServer.csr -sha256 -nodes
注:根据提示填写安全
openssl x509 -req -CA MyCA.crt -CAkey MyCA.key -in MyServer.csr -out MyServer.crt -days 3650 -extfile ext.ini -sha256 -set_serial 0x1111
一般浏览器中内置了CA根证书,可是咱们的CA证书是利用openssl本身制做的的,因此须要手动导入。以Chrome浏览器为例,咱们先点击右上角三个·,而后依次点击‘设置’,‘隐私设置和安全性’,‘安全’,‘管理证书’,‘受信任的根证书颁发机构’,‘导入’,而后将MyCA.crt导入便可,接下来就能够经过浏览器以https方式访问咱们的网站了。服务器