说明
`先看完,按步骤一步步配置;
1、创建一个本地证书签名请求(CSR)(windows服务端)
提示:这里描述项目中遇到的问题:
(参考http://wiki.jikexueyuan.com/project/tomcat/ssl-tls.html)
创建一个本地自签名证书
keytool -genkey -alias server -keyalg RSA -keystore server.keystore
输入密码(123123)/姓名(域名:www.baidu.cn)/单位(baidu)/组织名称(baidu)/城市(beijing)/省(beijing)/国家(CN)/y
完成则生成了server.keystore。
1、如报错:找不到keytool 需进入到JDK,C:\Program Files\Java\jdk1.8.0_51\bin
2、如报错:keytool 错误: java.io.FileNotFoundException: server.keystore (拒绝访问。)输入生成文件的路径:
C:\Program Files\Java\jdk1.8.0_51\bin>keytool -genkey -alias server -keyalg RSA -keystore /e:\aa\server.keystore/
2、然后利用下列代码创建 CSR(windows服务端)
keytool -certreq -keyalg RSA -alias server -file server.csr -keystore
server.keystore
输入密码:123123
完成则生成了server.csr
需要路径则输入:
keytool -certreq -keyalg RSA -alias server -file /e:\aa\server.csr/ -keystore /e:/aa/server.keystore\
3、复制windows,生成的server.csr到Linux。(linux)
创建CA私钥和证书(linux)
openssl genrsa -out server_rootCA.key 2048
openssl req -x509 -new -nodes -key server_rootCA.key -sha256 -days 3650 -out server_rootCA.pem
openssl x509 -outform der -in server_rootCA.pem -out server_rootCA.crt
生成了三个文件server_rootCA……文件。(linux)
4、将生成的server.csr用自建的server_rootCA.pem签名(linux)
新建v3.ext文件,内容如下:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.baidu.cn
CA签名server.csr
Sudo openssl x509 -req -in server.csr -CA server_rootCA.pem -CAkey server_rootCA.key -CAcreateserial -out server.crt -days 3650 -sha256 -extfile v3.ext
生成了server_rootCA.crt到server.keystore。
5、将生成的server_rootCA.crt到server.keystore 复制到U盘,到Windows。
keytool -import -alias CA -keystore server.keystore -trustcacerts -file server_rootCA.crt
密码:123123
y
将生成的server.crt导到server.keystore
keytool -import -alias server1 -keystore server.keystore -file server.crt
密码:123123
keytool -import -alias server -keystore server.keystore -file server.crt
密码:123123
y
keytool -list -keystore server.keystore
查看有三个则成功;
6、将生成的server_rootCA.crt和server.crt,双击安装到受信任的根证书发布机构
先安装server_rootCA.crt,再安装server.crt。(Windows服务端)
7、客户端(Linux),浏览器配置。
将server_rootCA.pem添加到客户端的nss中
Windows 列出所有证书:
keytool -list -keystore server.keystore
Linux列出所有证书:
certutil -d sql:$HOME/.pki/nssdb -L
添加证书:
certutil -d sql:$HOME/.pki/nssdb -A -t “P,” -n 证书别名 -i 证书路径
注:windows添加server.crt到 浏览器即可,Linux添加erver_rootCA.pem到浏览器即可;
麒麟的Linux。不能导证书,需要另外升级麒麟的包。
Tomcat,server.xml需加配置:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" keystoreFile="d:/server.keystore"
keystorePass="123123" sslProtocol="TLS" />