`

OPENSSL-CA

 
阅读更多
一、OpenSSL简单介绍

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。SSL能使用户/服务器应用之间的通信不被攻击者q听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。

通过OpenSSL提供FTP+SSL/TLS认证功能,并实现安全数据传输 http://www.linuxidc.com/Linux/2013-05/84986.htm

Linux下使用OpenSSL生成证书 http://www.linuxidc.com/Linux/2015-05/117034.htm

利用OpenSSL签署多域名证书 http://www.linuxidc.com/Linux/2014-10/108222.htm

在OpenSSL中添加自定义加密算法  http://www.linuxidc.com/Linux/2015-08/121749.htm

二、安装相应软件包

$ sudo apt-get install apache2      ##安装Apache

$ sudo apt-get install openssl      ##安装openssl


$ sudo apt-get install libssl-dev    ##安装openssl开发库


$ sudo apt-get install bless      ##编辑器使用 bless 十六进制编辑器,需预先安装


三、openssl.cnf简单释义

$ vi /usr/lib/ssl/openssl.cnf


127 [ req_distinguished_name ]
128 countryName                    = Country Name (2 letter code)##国家名,2个字母代码简称
129 countryName_default            = CN  ##中国就是CN
130 countryName_min                = 2
131 countryName_max                = 2
132 
133 stateOrProvinceName            = State or Province Name (full name)##州或省的名字
134 stateOrProvinceName_default    = beijing
135 
136 localityName                    = Locality Name (eg, city)  ##本地城市名
137 localityName_default            =beijing
138 0.organizationName              = Organization Name (eg, company) ##组织(公司)名
139 0.organizationName_default      = beijing www company
140 
145 organizationalUnitName          =Organizational Unit Name(eg,section)##组织单元(部门)名
146 organizationalUnitName_default  = www
147
148 commonName                      = Common Name(e.g.server FQDN or YOUR name)##服务器域名
149 commonName                      = www.baidu.com
150 commonName_max                  = 64
151 
152 #emailAddress                  = Email Address      ##Email地址
153 emailAddress                    = admin@baidu.com
154 emailAddress_max                = 64
155 
156 # SET-ex3                      = SET extension number 3
157 
158 [ req_attributes ]
159 #challengePassword              = A challenge password  ##修改密码
160 challengePassword              = 
161 
163 challengePassword_min          = 4
164 challengePassword_max          = 20


四、成为数字证书认证机构(CA),并为该CA生成证书

①将openssl.cnf配置文件拷贝到当前目录下并创建以下在配置文件中指定的子文件夹

Ubuntu安装OpenSSL

$ sudo ln /usr/lib/ssl/openssl.cnf .

$ mkdir demoCA

$ cd demoCA

$ mkdir certs crl newcerts

$ touch index.txt serial  ##index.txt为空;


##serial必须写入内容,且为字符串格式的数字(比如1111)

设置好这些后,现在就可以创建和发布证书了

②为自己的 CA 生成自签名证书,这意味着该机构是被信任的,而它的证书会作为 root 证书

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


Ubuntu安装OpenSSL

注:务必记住自己所输入的密码,命令输出的文件存储:ca.key 与 ca.crt 中。文件 ca.key 包括 CA 的私钥,而 ca.crt 包含了公钥证书。

五、为客户生成证书

现在,我们是 root CA 了,可以为客户签数字证书了,客户是www.baidu.com。

①生成公开/私有密钥对

$ openssl genrsa -des3 -out server.key 1024

Ubuntu安装OpenSSL

注:需要提供一个密码来保护你的密钥,密钥会被保存在 server.key 文件中.

②生成证书签名请求 ,一旦公司拥有了密钥文件,它应当生成证书签名请求(CSR)。CSR 将被发送给 CA,CA 会为该请求生成证书(通常在确认 CSR 中的身份信息匹配后)。

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


Ubuntu安装OpenSSL

注:请记住自己的输入

③生成证书。CSR 文件需要拥有 CA 的签名来构成证书(在现实世界中,CSR 文件常常被发送给可信任的 CA 签名)。输入CA的密钥,使用我们自己的 CA 来生成证书:

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

六、在网站中使用PKI



$ sudo vi /etc/hosts


127.0.0.1    www.baidu.com

②启动一个拥有之前生成的证书的简单的 web 服务器

$ cp server.key server.pem

$ cat server.crt >> server.pem          ##将密钥和证书合并成一个文件

$ openssl s_server -cert server.pem -www    ##使用server.pem启动服务器


③默认情况下,服务器会监听 4433 端口。输入https://www.baidu.com:4433


注:提示此连接不受信任是因为我们的CA是自签名的,如是VeriSign 之类的 CA 授权的话就不会出现该情况了。

在这里可以配置让火狐接受我们的自签名(其他浏览器大同小异),配置如下:

菜单--->首选项--->高级--->证书--->查看证书(证书管理器)--->导入--->进入你配置openssl的目录,选择ca.crt--->打开(下载证书)--->勾上“信任使用此CA标识的网站”--->确定,然后刷新网站





SOURCE LINK http://www.linuxidc.com/Linux/2015-10/124001p2.htm
分享到:
评论

相关推荐

    安装openssl和openssl-develd 的依赖包

    注意,实际生产环境中,通常会使用权威CA签发的证书,而不是自签名证书,因为浏览器可能会警告用户自签名证书的安全风险。 总的来说,openssl和openssl-devel在IT安全领域扮演着核心角色,是搭建安全网络服务不可或...

    openssl-1.1.1l.tar.gz

    OpenSSL 包含工具来创建和管理数字证书,如 `openssl req` 用于创建证书请求,`openssl x509` 用于签发或处理 X.509 证书,以及 `openssl ca` 用于运行自己的证书颁发机构(CA)。 5. **命令行工具** OpenSSL ...

    前端开源库-openssl-self-signed-certificate

    在IT行业中,尤其是在网络安全和Web开发领域,OpenSSL是一个至关重要的工具。OpenSSL是一个开源的库,包含了多种加密算法、安全协议以及相关的实用程序。它主要用于实现SSL/TLS协议,这些协议是确保网络通信安全的...

    OpenSSL-1.0.2h.tar.gz

    3. **证书管理**:OpenSSL 提供了证书工具,如 `openssl req` 用于创建证书请求,`openssl x509` 用于处理 X.509 证书,以及 `openssl ca` 用于运行证书颁发机构(CA),帮助管理和签发证书。 4. **开发接口**:...

    openssl-1.0.2n.tar.gz

    5. **证书签名请求(CSR)**:当需要从权威CA获取证书时,OpenSSL可以生成CSR,其中包含了公钥和组织信息,由CA用于签发正式的证书。 6. **SSL/TLS握手**:OpenSSL 包含了实现SSL/TLS协议握手过程的代码,包括...

    openssl-1.1.1a.tar.gz

    例如,可以使用`openssl req`生成证书请求,`openssl x509`签发证书,`openssl ca`管理证书颁发机构。 6. **加密算法**:OpenSSL支持多种加密算法,包括对称加密(如AES)、非对称加密(如RSA、DSA)、散列函数(如...

    openssl-1.0.1u.tar.gz

    3. **证书管理**:OpenSSL 提供了工具来生成、管理 SSL/TLS 证书,包括自签名证书和 CA(Certificate Authority)证书,这对于服务器和客户端的身份验证至关重要。 4. **哈希与消息认证码**:OpenSSL 支持 MD5、SHA...

    openssl-0.9.8k_WIN32.rar

    5. 在实际生产环境中,通常会使用权威的证书颁发机构(CA)签发的证书,而不是自签名证书,因为浏览器会警告用户自签名证书可能存在安全风险。 6. 使用HTTPS可以提升网站的Google搜索排名,因为它被看作是网站安全...

    openssl-windows64

    5. **证书签名请求(CSR)**:OpenSSL 的命令行工具可以生成CSR,这是向证书颁发机构(CA)申请数字证书时提交的文件,包含公开密钥和组织信息。 6. **密钥管理**:OpenSSL 可以生成、导入、导出和管理公钥和私钥对,...

    Win32OpenSSL-0_9_8l_95895

    描述中的“OpenSSL 生成CA证书”意味着这个软件包主要用于创建自签名的证书颁发机构(CA)证书。在网络安全中,CA证书是用于验证服务器或客户端身份的重要工具,它由可信任的第三方——即证书颁发机构——签发。然而...

    openssl-1.1.0c tar包

    3. **证书管理**:OpenSSL 提供命令行工具来生成、管理及操作X.509数字证书,这包括生成自签名证书、CSR(证书签名请求)、CA(证书权威机构)等。 4. **密钥生成**:OpenSSL 可以生成各种类型的密钥对,如RSA、DSA...

    openssl-0.9.8k_WIN32(RSA密钥生成工具)

    `openssl.cnf`是OpenSSL的配置文件,其中包含了默认的设置和各种选项,如证书颁发机构(CA)的信息、加密算法的选择等。在生成或处理证书时,这个配置文件会被引用。用户可以根据需要修改此文件以适应自己的环境。 ...

    openssl-1.1.1d.zip

    例如,它可以生成自签名证书用于本地测试,也可以处理由权威CA(证书颁发机构)签发的证书。 4. 应用程序集:OpenSSL 包含一系列命令行工具,如`openssl s_client`用于测试SSL/TLS服务器,`openssl s_server`用于...

    openssl-fips-2.0.2

    7. **证书管理**:SSL证书包含了网站的身份信息和公钥,由权威的证书颁发机构(CA)签名。正确配置证书是确保服务器与客户端间安全连接的关键。 8. **安全最佳实践**:除了使用FIPS认证的OpenSSL,还应关注定期更新...

    Win64OpenSSL-1_1_1b.msi

    OpenSSL提供的CA应用程序就是一个小型的证书管理中心(CA),实现了证书签发的整个流程和证书管理的大部分机制 OpenSSL实现了SSL协议的SSLv2和SSLv3,支持了其中绝大部分算法协议

    Win64OpenSSL-1_1_0h.zip

    OpenSSL不仅提供了加密功能,还包含了用于创建和管理数字证书的工具,例如`openssl req`用于生成证书请求,`openssl x509`用于签发或解析X.509证书,以及`openssl ca`用于运行自己的证书颁发机构(CA)。这些工具...

    openssl-0.9.7i

    4. **证书管理(Certificate Management)**:OpenSSL 可以创建自签名证书,处理 CSR(证书签署请求),以及管理 CA(证书颁发机构)。 **OpenSSL 0.9.7i 版本中的关键改进和特性:** 1. **安全更新**:这个版本...

    Win64OpenSSL-1_0_2h.rar

    `openssl x509` 命令用于处理X.509证书,`openssl ca` 则可以用于扮演CA角色,签发证书。 5. **命令行工具**:OpenSSL 提供了一套丰富的命令行工具,如 `openssl s_client` 和 `openssl s_server`,可以用来测试SSL...

    Win64OpenSSL-3_0_1.zip

    在服务器配置中,OpenSSL常用于生成SSL证书,包括自签名证书和请求权威CA(Certificate Authority)签发的证书。例如,`openssl req`命令用于创建证书请求,`openssl x509`则用于签发或处理X.509证书。 OpenSSL还...

    apache_2.2.8-win32-x86-openssl-0.9.8g.zip

    在实际应用中,管理员可能需要创建自签名的SSL证书或者购买权威CA(证书颁发机构)签发的证书来验证服务器的身份。此外,还可以通过配置Apache服务器的SSL选项来调整加密强度、支持的加密套件、会话缓存大小等,以...

Global site tag (gtag.js) - Google Analytics