开发过程中需要用到https协议地址,因此简单了解运用了一下。
Linux环境
一、原理和简介就不说了,直接开始生成最简单的服务端https证书和秘钥文件
1.在任何一个linux服务器上都可以,只要将生成的两个文件放在要访问的服务器中就可以了
openssl req -new -x509 -nodes -out server.crt -keyout server.key
执行过程中需要填写相关的信息,里面的common name选项可以填写localhost
生成的两个文件server.crt为证书,server.key为秘钥
我这里是用了nginx启动的服务,所以直接就放在nginx.conf同级目录中了,因此在下面的配置中并没有写目录。
2.修改配置文件nginx.conf,在http节点中
# 新增server节点,使用9001端口
server {
listen 9001 ssl;
server_name localhost;
ssl_certificate server.crt; #证书的文件名。
ssl_certificate_key server.key; #证书的密钥文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
}
注意:nginx编译安装的时候要开启http_ssl_module 模块,打开nginx的安装源码文件夹,配置ssl模块
./configure --prefix=/opt/local/nginx --with-http_ssl_module
3.重启nginx,浏览器使用https://[服务器ip]:9001,虽然显示不信任,但是已经可以连通访问了。
二、.使用mkcert创建浏览器信任的https证书
1.先安装工具
yum install nss-tools
2.安装完成后,下载mkcert二进制包
wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.1/mkcert-v1.4.1-linux-amd64
3.下载文件后,使文件可执行并将二进制文件放在/usr/loa/bin下:
chmod +x mkcert
mv mkcert /usr/local/bin
此时mkcert就可以直接使用了!
4.安装CA根证书到本地:(该操作是将当前服务器作为证书发布者)
mkcert -install
5.生成服务器的证书和秘钥,及客户端的证书
mkcert 192.168.1.100 localhost //后面还可以继续空格添加其他域名或IP地址,默认是pem格式(生成的两个文件就是服务器证书和秘钥)
mkcert -pkcs12 192.168.1.100 //生成p12格式的正式iis可以用,默认密码为:“changeit”
mkcert -client 192.168.1.100 //客户端证书,默认是pem格式
mkcert -pkcs12 -client 192.168.1.100 //生成p12格式客户端证书,win用户可以直接导入,默认密码为:“changeit”(生成的文件是客户端证书,客户端可以直接双击导入证书,然后浏览器访问就变成信任地址了)
客户端p12证书在windows下的图标:
双击之后,会有导入证书的向导,按照指引导入即可
6.nginx服务配置中修改证书和秘钥文件的名称就可以,注意如果目录变了要跟着修改。
三、有个可以免费在线生成ssl证书的网站,没试过,大家有兴趣可以试试https://www.chinassl.net/ssltools/index.html
Windows环境
一、下载mkcert
https://github.com/FiloSottile/mkcert/releases/latest
选择mkcert-v1.4.3-windows-amd64.exe,下载到E盘
二、安装CA根证书到本地
1.打开cmd,进入到E盘
执行mkcert-v1.4.3-windows-amd64.exe -install
选择是,只要返回有
就说明安装成功了。
2.生成服务器端的证书和秘钥、及客户端的证书
3.双击客户端证书localhost-client.p12,导入成功即可。
4.此时修改nginx.conf配置文件相关配置,重启。再用浏览器访问,就是信任网址了。
本文参考引用:
http://blog.sina.com.cn/s/blog_6ffe66ef0100qzg6.html
https://blog.csdn.net/i12344/article/details/103383049
https://blog.csdn.net/alinathz/article/details/106440017