随笔 - openssl证书的生成和使用
2017-08-15 08:53
543 查看
证书类别
- 根证书 生成服务器证书,客户端证书的基础。自签名。
- 服务器证书 由根证书签发。配置在服务器上。
- 客户端证书 由根证书签发。配置在服务器上,并发送给客户,让客户安装在浏览器里。
要注意,
1. 服务器证书的cn要和servername一致,否则启动httpd时有警告。
2. 浏览器安装客户端证书时,需要用pkcs12转换成pfx格式,否则可以安装但无效。
3. 把根证书安装到浏览器的受信CA中,访问服务器时就不会出警告了。
环境: CentOS6_x64 openssl 1.0.1 apache2.2
注意,index.txt需要初始化为0字节,连换行也不能有。
把这个crt导入客户端浏览器,就不会显示证书警告了。
有时,签发多个证书时,由于common name等信息重复导致签名失败,
可以初始化index.txt和serial。
个人证书需要转成pfx格式
另外,遇到了证书不能删除的问题。解决方法是:
使用mmc,进入 证书,即可删除。
windows上配置nginx时,可能遇到缓存等模块不可用的情况,
需要注释掉ssl_session_cache等。
生成dh参数:
- 根证书 生成服务器证书,客户端证书的基础。自签名。
- 服务器证书 由根证书签发。配置在服务器上。
- 客户端证书 由根证书签发。配置在服务器上,并发送给客户,让客户安装在浏览器里。
要注意,
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
相关文章推荐
- OpenSSL生成证书详解 如何使用OpenSSL生成自签证书 转载
- 使用OpenSSL生成IIS可用的SHA-256自签名证书
- RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密
- Tomcat6配置使用SSL双向认证(使用openssl生成证书)
- openssl证书生成和源码wince编译及其使用
- 用openssl生成SSL使用的私钥和证书,并自己做CA签名
- 使用 openssl 生成证书
- Tomcat6和5.5配置使用SSL双向认证(使用openssl生成证书)
- 使用OpenSSL生成证书,并且配置到tomcat,下载ipa
- 使用OpenSSL生成证书
- 使用 openssl 生成证书(含openssl详解)
- 再也不用“‘“使用OpenSSL生成证书”了
- Linux下OpenSSL客户端中使用req命令来生成证书的教程
- 使用keytool和openssl工具生成SSL双向认证密钥对和证书库
- qt使用sslSocket及openssl生成证书__心得
- rhel6.3下使用openssl来生成CA证书并颁发证书实例解析
- 使用OpenSSL生成证书-nginx
- 使用openssl工具生成证书
- 使用 openssl 生成证书(含openssl详解)
- 使用OpenSSL生成证书