随笔 - openssl证书的生成和使用

本文涉及的产品
Digicert DV 证书 单域名,20个 3个月
简介: 证书类别 - 根证书 生成服务器证书,客户端证书的基础。自签名。 - 服务器证书 由根证书签发。

证书类别
- 根证书 生成服务器证书,客户端证书的基础。自签名。
- 服务器证书 由根证书签发。配置在服务器上。
- 客户端证书 由根证书签发。配置在服务器上,并发送给客户,让客户安装在浏览器里。

要注意,
1. 服务器证书的cn要和servername一致,否则启动httpd时有警告。
2. 浏览器安装客户端证书时,需要用pkcs12转换成pfx格式,否则可以安装但无效。
3. 把根证书安装到浏览器的受信CA中,访问服务器时就不会出警告了。


环境: CentOS6_x64 openssl 1.0.1 apache2.2

准备

echo -n > /etc/pki/CA/index.txt
echo '00' > /etc/pki/CA/serial

注意,index.txt需要初始化为0字节,连换行也不能有。

1 根证书

# 修改/etc/pki/tls/openssl.cnf,放开nsCertType= server的注释。
[ usr_cert ]
nsCertType = server

cd /etc/pki/CA
# 生成密钥
openssl genrsa -out private/myCA.key 1024
# 生成自签名证书
openssl req -new -x509 -key private/myCA.key -out certs/myCA.crt

把这个crt导入客户端浏览器,就不会显示证书警告了。

2 服务器证书

cd /etc/pki/tls
openssl genrsa -out private/sv.key 1024
# 生成请求
openssl req -new -key private/sv.key -out private/sv.csr
# 使用根证书签名
openssl ca -in private/sv.csr -keyfile ../CA/private/myCA.key -cert ../CA/certs/myCA.crt -out certs/sv.crt

有时,签发多个证书时,由于common name等信息重复导致签名失败,
可以初始化index.txt和serial。

3 客户端证书

# 修改/etc/pki/tls/openssl.cnf,注释掉nsCertType= server,去掉的nsCertType = client, email注释。
[ usr_cert ]
nsCertType = client, email

cd /etc/pki/tls
openssl genrsa -out private/clnt1.key 1024
openssl req -new -key private/clnt1.key -out private/clnt1.csr
openssl ca -in private/clnt1.csr -keyfile ../CA/private/myCA.key -cert ../CA/certs/myCA.crt -out certs/clnt1.crt

个人证书需要转成pfx格式

openssl pkcs12 -export -in certs/clnt1.crt -out certs/clnt1.pfx -inkey private/clnt1.key

apache 配置

SSLCertificateFile /etc/pki/tls/certs/sv.crt
SSLCertificateKeyFile /etc/pki/tls/private/sv.key
SSLCertificateChainFile /etc/pki/tls/certs/chain.crt      <--这个从哪儿来的?
SSLCACertificateFile /etc/pki/tls/certs/myCA.crt

    SSLVerifyClient require
    SSLVerifyDepth  1

nginx配置

    server {
        listen       443 ssl;
        server_name  localhost;
        ssl_certificate      /etc/pki/tls/certs/sv2.crt;
        ssl_certificate_key  /etc/pki/tls/private/sv2.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        ssl_client_certificate /etc/pki/CA/certs/myCA.crt;
        ssl_verify_client on;
        ssl_verify_depth 1;

另外,遇到了证书不能删除的问题。解决方法是:
使用mmc,进入 证书,即可删除。

windows上配置nginx时,可能遇到缓存等模块不可用的情况,
需要注释掉ssl_session_cache等。

生成dh参数:

dhparam -out dh1024.pem 1024
目录
相关文章
|
域名解析 网络协议 算法
2022阿里云免费SSL证书申请全过程(图文详解)
阿里云SSL证书免费申请流程:先0元支付SSL证书资源包,每个阿里云账号可以一年可以申请20个免费SSL证书,然后域名DNS验证,提交CA审核后就可以下载SSL证书到本地了
48196 4
2022阿里云免费SSL证书申请全过程(图文详解)
|
1月前
|
安全 网络协议 搜索推荐
【荐】免费一年SSL证书申请方法全攻略
锁图 申请免费一年SSL证书的优势包括:提升网站安全性,避免中间人攻击;增强用户信任感;改善SEO排名;降低安全成本。申请流程如下: 1. 访问JoySSL官网选择免费证书套餐。 2. 填写注册信息并输入注册码230922。 3. 验证域名所有权,通常通过电子邮件或DNS设置中的TXT记录。 4. 下载并安装证书到服务器。 5. 检查浏览器地址栏是否显示安全锁图标及“https”。 大部分免费SSL证书有效期为一年,到期后需重新申请或升级付费版。通过上述步骤,您可轻松为网站启用免费SSL证书,保障数据安全并提升用户体验。
|
3月前
|
安全 网络安全
给ip白嫖一个免费的SSL
为IP地址申请免费SSL证书是可能的,如JoySSL提供的免费试用IP地址SSL证书。用户需访问其官网注册并填写特定注册码230922,完成IP地址验证后提交申请。成功后需定期检查更新证书,确保网站安全。尽管如此,基于域名的SSL证书更受信任,建议优先考虑。
|
6月前
|
前端开发 Java 应用服务中间件
开发指南031-安装ssl证书
为增强安全性,平台可安装ssl证书。对于平台不同的组成部分需要采用不同的方式,使用不同的证书格式
|
7月前
|
网络协议 应用服务中间件 网络安全
阿里云免费SSL申请流程(白嫖20张SSL免费证书)2024年新版教程
本文详述了2024年最新的阿里云免费SSL证书申请流程。用户可通过阿里云数字证书管理服务控制台一键申请最多20张免费单域名SSL证书,每张证书有效期为3个月。首先登录控制台,选择“SSL证书管理”下的“个人测试证书”,同意协议并完成购买流程。之后需创建证书、输入域名等信息并进行域名验证。验证方法包括手动DNS验证、域名授权自动化验证或文件验证。完成验证后,等待审核通过即可下载适用于不同服务器类型的SSL证书。请注意,阿里云免费SSL证书到期后不支持续费,需重新申请。了解更多详情,请访问阿里云官方SSL证书页面。
|
网络协议 网络安全
【SSL证书】如何使用 FreeSSL (V2.8.0) 申请免费证书及安装
【SSL证书】如何使用 FreeSSL (V2.8.0) 申请免费证书及安装
533 0
|
域名解析 网络协议 算法
阿里云ssl免费证书2023新版申请教程
阿里云ssl免费证书2023新版申请教程,阿里云SSL免费证书在哪申请?一个阿里云账号一年可以申请20张免费SSL证书,很多同学找不到免费SSL的入口,阿小云来详细说下阿里云SSL证书免费申请入口链接以及免费SSL证书申请流程
1679 1
|
域名解析 安全 网络协议
想要给网站上 HTTPS,要如何免费拿下一张 SSL 证书?
什么是 HTTPS?众所周知 HTTP 是明文传输,并没有加密措施,容易被人抓包分析内容,过去可以使用前后端约定俗成加密规则传输,但是到现在可以使用 HTTPS 避免这一步的操作,所以 H
想要给网站上 HTTPS,要如何免费拿下一张 SSL 证书?
|
网络安全
《阿里云产品手册2022-2023 版》——数字证书管理服务(原 SSL 证书)
《阿里云产品手册2022-2023 版》——数字证书管理服务(原 SSL 证书)
162 0
|
域名解析 网络协议 算法
阿里云免费SSL证书配置(图文详解)
阿里云SSL免费证书在哪申请?一个阿里云账号一年可以申请20张免费SSL证书,很多同学找不到免费SSL的入口,阿小云来详细说下阿里云SSL证书免费申请入口链接以及免费SSL证书申请流程
3573 0