1.首先是下载openssl
2.安装完成之后,进入bin目录,运行openssl.exe
3.在当前目录新建ca的文件夹,执行
genrsa -des3 -out ca/ca.key 2048
说明:回车输入两次自己设定的密码 完成 在ca的文件夹中就可以得到一个ca.key
4.去掉密码 ,也可以在第三步执行命令时,不使用-des3(作用就是使用nginx时,在reload的时候不需要验证密码)
rsa -in ca/ca.key -out ca/ca_nopass.key
5.生成csr证书
req -new -key ca/ca_nopass.key -out ca/ca.csr -config cnf/openssl.cnf
说明:-config 这个命令主要是有时候会提示找不到配置文件 这里是当前目录下的 cnf/openssl.cnf文件,安装好的是可以查看到该目录的
域名,也称为 Common Name,因为特殊的证书不一定是域名:example.com
组织或公司名字(Organization):Example, Inc.
部门(Department):
城市(City):Beijing
省份(State / Province):Beijing
国家(Country):CN
最后可选的两项直接回车就可以
6.生成crt证书与pem证书
x509 -req -days 3650 -in ca/ca.csr -signkey ca/ca_nopass.key -out ca/server.crt或x509 -req -days 3650 -in ca/ca.csr -signkey ca/ca_nopass.key -out ca/server.pem
7.导出用于tomcat的pfx证书
pkcs12 -export -inkey ca/ca_nopass.key -in ca/server.crt -out ca/server.pfx
以上就完成的证书的生成
8.配置nginx
server { listen 8989 ssl; server_name localhost; ssl on; ssl_certificate cert/cahome/server.crt; ssl_certificate_key cert/cahome/ca_nopass.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { root html; index index.html index.htm; } }
9.配置tomcat 这里我使用的是springboot 所以简单的配置了一下
application.properties文件的配置
server.port=8878server.ssl.key-store-type=PKCS12server.ssl.key-store=classpath:server.pfxserver.ssl.key-store-password=123456