• 用OpenSSL命令行生成证书文件


    用OpenSSL命令行生成证书文件

    1.首先要生成服务器端的私钥(key文件):

    openssl genrsa -des3 -out server.key 1024

    运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!

    去除key文件口令的命令:

    openssl rsa -in server.key -out server.key

    2.设置证书请求(csr文件)

    openssl req -new -key server.key -out server.csr -config openssl.cnf

    生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.

    后面的-config 可以不加,也可以像“/etc/sbin/opensslcnf”加载路径。

    然后需要输入下列信息:

    Country Name: cn 两个字母的国家代号

    State or Province Name: An Hui 省份名称

    Locality Name: Bengbu 城市名称

    Organization Name: Family Network 公司名称

    Organizational Unit Name: Home 部门名称

    Common Name: Chen Yang 你的姓名

    Email Address: sunstorm@263.net Email地址

    生成 ca.crt 文件,将文件属性改为400,并放在安全的地方

    3.生成客户端的公钥:

    openssl genrsa -des3 -out client.key 1024

    openssl req -new -key client.key -out client.csr -config openssl.cnf

    4.自签发CA签名。CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱。

     openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

    5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:

    Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

    Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

    client使用的文件有:ca.crt,client.crt,client.key

    server使用的文件有:ca.crt,server.crt,server.key

    大体步骤就是这些,也可以利用某些工具

    有一个工具可以使用:http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz  步骤参见http://blog.csdn.net/cangzhubai/article/details/5214749

    生成密钥也可用keytool,生成私钥文件(.key)和签名请求文件(.csr),openssl签发数字证书,网址http://www.blogjava.net/duanzhimin528/archive/2010/06/22/324182.html

    以下是自己理解的,不对的请留言,我好改正。

    简单点理解就是创建私钥,通过私钥生成证书请求文件,自己或机构认证,签署证书,拷贝到服务器配置文件中生效。

             也可以服务器和客服端都认证,这就是某些密钥要生成两遍的原因,这样更安全,有点像支付宝安全插件。

    openssl是加密程序的集合体,

    apache产生http,及网页的浏览,你也可以用mini-http及https

    mod-ssl是apache的插件,但是独立发行,他里面有一个sign.sh,在phg.contrib目录中,对openssl生成的私钥进行加密,也可用openssl自带的一个CA.sh来签证书。

    顺便说一句openssl还是很强大的加密工具,相对密码学有深入理解的可以好好看看源代码。

    本来是解决mini-http安装后,为什么不要输入密码就直接看到网页的问题,看了一天只弄清楚这个。mini-http问题求前辈指教。

  • 相关阅读:
    C语言中条件表达式求最大值和最小值
    面向对象编程:Java的简单数据类型
    JAVA学习经验谈
    JAVA的入门基础一些精典
    面向对象编程:Java复杂数据类型用法
    面向对象编程:Java的简单数据类型
    面向对象编程:Java collection更有效管理elements
    从C++到Java 理解面向对象是关键所在
    JAVA学习经验谈
    JAVA的入门基础一些精典
  • 原文地址:https://www.cnblogs.com/zhouhbing/p/4048834.html
Copyright © 2020-2023  润新知