admin管理员组文章数量:1122852
https
目录
SSL/TLS
1、搭建OPenssl服务器
1.1、下载
1.2、安装下载好的exe程序
2、服务器端证书-生成key、CSR、CRT
2.1、进入如下目录,执行cmd
2.2、生成一个私钥key
2.3、由生成的私钥key生成一个待签名的CSR证书文件(公钥)
2.4、查看证书内容
3、自建CA证书
3.1、创建CA私钥
3.2、生成CA证书
3.3、生成CA根证书
3.4、对服务器证书签名
4、nginx配置ssl,支持https
注意:以下内容有参考其它资料。
SSL/TLS
TLS(Transport Layer Security) 是SSL(Secure Socket Layer) 的后续版本
证书生成以及自签名证书
查看系统已存证书:certmgr.msc,运行中输入可以查看证书管理器win+r。
CSR:证书签名请求文件,一个文件的后缀。
CRT:证书
key: 私钥,由key生成CSR,等待被签名。
1、搭建OPenssl服务器
1.1、下载
OPenSSL自签名下载:.html
1.2、安装下载好的exe程序
2、服务器端证书-生成key、CSR、CRT
2.1、进入如下目录,执行cmd
2.2、生成一个私钥key
使用openssl工具生成一个私钥key:
openssl.exe genrsa -des3 -out d:/a/server.key
生成了一个key文件:
2.3、由生成的私钥key生成一个待签名的CSR证书文件(公钥)
openssl.exe req -new -key d:/a/server.key -out d:/a/server.csr
-key:生成的私钥文件
-new:新创建一个文件
这个证书不能直接使用,需要签名生成一个CRT证书才能使用。
证书中信息:
·Country Name ( 2 letter code) [XX] :CN #请求签署人的信息
·State or Province Name(fullname) []:#请求签署人的省份名字
·Locality Name(eg, city) [Default City] :#请求签署人的城市名字
·Organization Name(eg, company) [Default Company Ltd] :#请求签署人的公司
·OrganizationalUnit Name(eg, section) []:#请求签署人的部门名字
·CommonName(eg, your name or your servers hostname) []:#这里一般填写服务器域名
2.4、查看证书内容
openssl.exe req -text -in d:/a/server.csr
3、自建CA证书
自建CA
我们用的操作系统(windows, linux, unix, android, ios等) 都预置了很多信任的根证书, 比如我的windows中就包含VeriSign的根证书, 那么浏览器访问服务器比如支付宝www.alipay时, SSL协议握手时服务器就会把它的服务器证书发给用户浏览器, 而这本服务器证书又比如是VeriSign颁发的,自然就验证通过了。
3.1、创建CA私钥
openssl.exe genrsa -out d:/a/myca.key 2048
3.2、生成CA证书
openssl.exe req -new -key d:/a/myca.key -out d:/a/myca.csr
3.3、生成CA根证书
openssl.exe x509 -req -in d:/a/myca.csr -extensions v3_ca -signkey d:/a/myca.key -out d:/a/myca.crt
3.4、对服务器证书签名
openssl x509 -days 365 -req -in d:/a/server.csr -extensions v3_req -CAkey d:/a/myca.key -CA d:/a/myca.crt -CAcreateserial -out d:/a/server.crt
用CA的key对服务器端的公钥做签名。
4、nginx配置ssl,支持https
需要服务端的证书CRT和私钥key,所以需要把上面生成的服务端证书server.key和server.crt传输到nginx所在的服务器。
需要在nginx.conf文件中添加:
server {listen 443 ssl;server_name localhost;ssl_certificate /opt/cer/server.crt;ssl_certificate_key /opt/cer/server.key;location /ftp {root /home/ftpadmin;index index.html index.htm;}}server {listen 8080;server_name localhost;rewrite ^/(.*)$ https://localhost:443/$1 permanent;}
配置后重新启动需要输入密码,这里自己定义的server.key的密码是:123456
配置完,重启nginx服务,访问如下:
如果想让https访问时不再提示不安全,需要把ca的crt证书安装到浏览器所在服务器的证书管理器中,因为这个证书时自己给自己签名的,是不受信任的,要想被信任,需要双击安装到受信任的根证书颁发机构存储区。从下图可以看出自己给自己颁发的。
5、一个免费的ssl证书网站
FreeSSL首页 - FreeSSL一个提供免费HTTPS证书申请的网站
本文标签: HTTPS
版权声明:本文标题:https 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1706314365a689412.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论