找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 6796|回复: 2

Ubuntu下使用openssl生成证书解决luci-ssl的证书错误问题

[复制链接]
本帖最后由 izsc 于 2016-11-1 18:33 编辑

抱歉 发了帖子却不能删帖。。。 这篇文章暂时搁在这里  因为楼主也是初学者 本文并没有从根本上解决问题  我还在研究 所以请不要再读下去了
(环境:Ubuntu16.04 LTS) 请先粗略看过本文红字部分
1.openssl官网下载源码
cd /tmp  *我放在tmp下
tar -zxf xxx  *源码包名称
cd xxx *解压后文件夹名称
./config
make
(make test ) make install
cd /usr/local/ssl
ps:CA.pl于misc下 openssl.cnf于本目录下
2.创建工作文档 *我的是/home/a1213/server
放入openssl.cnf 以及CA.pl
新建index.txt  serial
serial写入01
mkdir demoCA
cd demoCA
新建index.txt serial
serial打入01 保存
在demoCA下执行  touch ./{serial,index.txt} (不明白这句有什么作用 但我用了这句后解决了一些错误)

------------------------
证书文件生成:

一.服务器端
1.生成服务器端的私钥(key文件);
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码,此密码用于加密key文件(参数des3是加密算法,也可以选用其他安全的算法),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果不要口令,则可用以下命令去除口令:
openssl rsa -in server.key -out server.key

2.生成服务器端证书签名请求文件(csr文件);
openssl req -new -key server.key -out server.csr
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其 提示一步一步输入要求的个人信息即可(如:Country,province,city,company等).
(此处Common Name必须打192.168.1.1也就是你路由器的IP 下同 每次的Common Name中都是填这个)(这些填的内容可能都要保持一致 没有测试过)
二.客户端
1.对客户端也作同样的命令生成key及csr文件;
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr

三.生成CA证书文件
server.csr与client.csr文件必须有CA的签名才可形成证书.
1.首先生成CA的key文件:
openssl genrsa -des3 -out ca.key 1024
2.生成CA自签名证书:
openssl req -new -x509 -key ca.key -out ca.crt
可以加证书过期时间选项 "-days 365".

四.利用CA证书进行签名
用生成的CA证书为server.csr,client.csr签名
1.ca.pl -newca, 在提示输入已有的证书文件时,输入上面已生成的ca.crt证书文件;
2.生成服务端证书文件
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
3.生成客户端证书文件
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
ps:可能客户端证书生成做的是无用功 把服务端的转成pfx也能行 因为上面信息填的全是一样的 可以尝试跳过二
直接用最后生成的01.pem转换成pfx
--------------------------------------
进行生成客户端证书文件 TXT_DB error number 2
原因:
This thing happens when certificates share common data. You cannot have two
certificates that look otherwise the same.
解决办法:
方法一:

修改demoCA下 index.txt.attr
  • unique_subject = yes  
  • unique_subject = no  

方法二:

删除demoCA下的index.txt,并再touch下 (问题用这个方法解决了)

  • rm index.txt  
  • touch index.txt  

-------------------------------
最后 在/home/a1213/server(我的工作目录)/demoCA/newcerts中有01.pem(这个不用拷贝) 02.pem(client签名生成的) 拷贝至/server 下
执行 openssl pkcs12 -export -in 02.pem -inkey client.key -out client.pfx
client使用的文件有:ca.crt,client.crt,client.key,client.pfx
server使用的文件有:ca.crt,server.crt,server.key
服务端:
把server.key和server.crt重命名为uhttpd.key 和uhttpd.crt
替换/etc/下的同名文件
ssh中执行  /etc/init.d/uhttpd restart
客户端:
根证书ca.crt和客户证书client.crt(client.pfx)安装到客户端, ca.crt安装到信任的机构,client.crt(这里我用client.pfx导入  而并未导入client.crt)直接在windows安装或安装到个人证书位置( 以下步骤没做 依然可行)然后用IP访问HTTP和https服务器。在IE中我们一般导入client.pfx证书,导入时会提示上面设置的密码。
下面是最后的效果图:
感觉用了https有点降速了 我这么个搞法还是因为强迫症 对速度有要求的完全可以走http
以上内容参考自:
http://blog.chinaunix.net/uid-26760055-id-3128132.html   linux下使用openssl生成证书
https://www.right.com.cn/forum/thread-108665-1-1.html   让OpenWrt默认使用https访问
http://blog.csdn.net/yinlijun2004/article/details/5716753#comments  如何用openssl命令行生成证书
http://yangrong083.blog.163.com/blog/static/113406097201410565814595/   openssl生成CA的时候出错:TXT_DB error number 2  


最后是做完后生成的所有文件 我一并上传了

由于是第一次发这种文章 描述上会有些问题 请原谅


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
来自手机 | 显示全部楼层
这篇文章真的好,符合我的需求,感谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 来自手机 | 显示全部楼层
没有办法 这个貌似没有从根本上解决问题 导入过证书的 访问证书没问题 换一台就不行了     过段时间我再看看能不能再改改
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 14:15

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表