一、例如给test.imdst.com
创建自签名证书
创建根证书的私匙
openssl genrsa -out test.imdst.com.key 2048
利用私钥创建签名请求
openssl req -new -subj "/C=US/ST=GuangDong/L=GuangZhou/O=Your Company Name/OU=imdst.com/CN=test.imdst.com" -key test.imdst.com.key -out test.imdst.com.csr
说明:这里/C表示国家(Country),只能是国家字母缩写,如CN、US等;/ST表示州或者省(State/Provice);/L表示城市或者地区(Locality);/O表示组织名(Organization Name);/OU其他显示内容,一般会显示在颁发者这栏。将带口令的私钥移除
mv test.imdst.com.key test.imdst.com.origin.key
openssl rsa -in test.imdst.com.origin.key -out test.imdst.com.key
用Key签名证书
openssl x509 -req -days 3650 -in test.imdst.com.csr -signkey test.imdst.com.key -out test.imdst.com.crt
为HTTPS准备的证书需要注意,创建的签名请求的CN必须与域名完全一致,否则无法通过浏览器验证
test.imdst.com.crt 自签名的证书
test.imdst.com.csr 证书的请求
test.imdst.com.key 不带口令的Key
test.imdst.com.origin.key 带口令的Key
二、nginx配置ssl验证
- 把test.imdst.com.crt发给浏览器验证,然后用test.imdst.com.key解密浏览器发送的数据
- nginx server {}配置
server
{
listen 443 ssl;
server_name test.imdst.com;
access_log /data/logs/test.access_log;
ssl on;
ssl_certificate sslkey/test.imdst.com.crt;
ssl_certificate_key sslkey/test.imdst.com.key;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDH:AES:HIGH:!aNULL:!MD5:!ADH:!DH;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}