Nginx 使用 openssl 的自签名证书
2015-03-21 21:13
393 查看
一、准备证书
0. 前期准备工作cd ~/ mkdir ssl cd ssl mkdir demoCA cd demoCA mkdir newcerts mkdir privatetouch index.txtecho '01' > serial1. 制件 CA 证书生成 CA 私钥: ca.key
openssl genrsa -des3 -out ca.key 2048这样是生成 rsa 私钥,`des3` 算法,openssl 格式,2048 位强度。`ca.key` 是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。另外可以通过以下方法生成没有密码的key:
openssl rsa -in ca.key -out ca_decrypted.key生成 CA 根证书的公钥 ca.crt:
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt2. 制作网站的 https 证书,并用 CA 签名认证假设我们需要为 abc.com 域名制作证书先生成 abc.com 的证书私钥 abc.com.pem
openssl genrsa -des3 -out abc.com.pem 1024无密码的私钥
openssl rsa -in abc.com.pem -out abc.com.key生成 csr 签名请求
openssl req -new -key abc.com.pem -out abc.com.csr这里需要输入国家,地区,组织,email等。最重要的是 **common name**,可以写你的名字或者域名。如果为了 https 申请,这个必须和域名一样,即,这里要写 abc.com,否则会引发浏览器警报,这里可以用 *.abc.com 来做泛域名证书。最后,需要用 CA 证书进行签名:
openssl ca -policy policy_anything -days 1460 -cert ./demoCA/ca.crt -keyfile ./demoCA/ca.key -in abc.com.csr -out abc.com.crt这样网站的 https 证书就做完了。还有一步就是把 ca.crt 的内容追加到 abc.com.crt 后面,因为有些浏览似乎不支持。
cat demoCA/ca.crt >> abc.com.crt
nginx 配置
加入配置内容:server { listen 443; server_name abc.com www.abc.com; root html; index index.html index.htm; ssl on; ssl_certificate /PATH/TO/abc.com.crt; ssl_certificate_key /PATH/TO/abc.com.key; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; location / { try_files $uri $uri/ =404; } }
其它
其实很多时候,并不需要加密的 key,所以像这面这么做就好了。cd ~/ mkdir ssl cd ssl mkdir demoCA cd demoCA mkdir newcerts mkdir privatetouch index.txt echo '01' > serial openssl genrsa -out ca.key 2048openssl req -new -x509 -days 3650 -key ca.key -out ca.crt cd .. openssl genrsa -out abc.com.key 2048openssl req -new -key abc.com.key -out abc.com.csr openssl ca -policy policy_anything -days 1460 -in abc.com.csr -out abc.com.crt -cert ./demoCA/ca.crt -keyfile ./demoCA/ca.key
相关文章推荐
- 使用 Openssl 验证自签名证书
- 使用OpenSSL创建CA根证书及自签名
- OpenSSL学习之使用个人信息数字证书(PFX)进行签名和验证
- 使用openssl的CA签发证书,签名applet[换博客10年3月]
- 使用证书对数据进行签名、验签、加密、解密以及openssl的常用方法
- 使用OpenSSL建立根CA及自签名证书制作过程
- 在linux(centos)使用openssl生成https证书并配置到nginx的实现过程
- [Azure] 使用azure cli 2.0 利用Key Vault创建自签名证书导入nginx
- iis 6/7/7.5/8/8.5 版本中使用openssl自签名证书的步骤
- 用openssl生成SSL使用的私钥和证书,并自己做CA签名
- 使用OpenSSL建立根CA及自签名证书制作过程 [转载]
- 用openssl生成SSL使用的私钥和证书,并自己做CA签名(转)
- OpenSSL使用1(用OpenSSL生成自签名证书在IIS上搭建Https站点)(用于iOS的https访问)
- 使用 Openssl 验证自签名证书
- iOS中使用Openssl X509证书进行字符串签名和验签
- nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)
- windows下使用openssl建立自签名证书的过程
- 如何使用OpenSSL生成带有SubjectAltName的自签名证书?
- 使用OpenSSL生成证书-nginx
- 使用OpenSSL生成IIS可用的SHA-256自签名证书