小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
写在前面
话不多说,直切主题,本文将利用openssl开源神器,免费获得证书,让你的http也可以变成https访问。
前段时间搭建k8s推荐官方后台dashboard的时候遇到一个问题,那就是这个后台必须得是https访问,否则访问不进去。这可贼蛋疼,你一个小小的后台,还必须让我弄证书访问,大家要知道,https访问必须要求证书。
所以就想到了openSSL,这是个开源软件工具库,可以通过这个生成一套证书,然后通过nginx映射下。
一顿操作猛如虎
首先说明一点 本文是在linux环境下执行的。
1、创建服务器证书密钥文件 server.key
openssl genrsa -des3 -out server.key 2048
如上:des3 是算法,2048位强度(为了保密性)。 server.key 是密钥文件名 -out的含义是:指生成文件的路径和名称。
如下图:
图中红色框中要求输入密码,必填,一会儿后面要用。
2、创建服务器证书的申请文件 server.csr
openssl req -new -key server.key -out server.csr
会要求输入下面内容
输出内容为:
Enter pass phrase ``for root.key: 输入前面创建的密码
Country Name (``2 letter code) [AU]:CN 国家代号,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing 省的全名,拼音
Locality Name (eg, city) []:BeiJing 市的全名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Yvioo 公司英文名(可以随便输入)
Organizational Unit Name (eg, section) []: 单位名 可以不输入
Common Name (eg, YOUR name) []: 输入你的名字
Email Address []:admin``@mycompany``.com 电子邮箱随便填
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: 可以不输入
An optional company name []: 可以不输入
3、去除文件口令
openssl rsa -in server.key.org -out server.key
会要求输入之前的密码 输入一开始的密码
4、生成证书文件server.crt
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
最后得到如上图中三个文件(crt、csr、key)
OK,到这里利用openSSL生成证书步骤结束,是不是贼简单。接下来看nginx的配置
nginx配置证书
这个步骤应该很多人都了解,就是把证书位置配置上去,就OK了。
server {
listen 443 ssl;
server_name xx.xxx.xxx.xx;
ssl_certificate /etc/nginx/key/server.crt;
ssl_certificate_key /etc/nginx/key/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /kube/ {
proxy_pass https://11.100.5.204:32001/;
}
}
接下来重启nginx,我们用https访问:
访问成功,这个是dashboard管理平台的登录界面
OK,今天的小知识点就讲到这里,我们下期再见
弦外之音
感谢你的阅读,如果你感觉学到了东西,麻烦您点赞,关注。也欢迎有问题我们下面评论交流
加油! 我们下期再见!
给大家分享几个我前面写的几篇骚操作