目标:我希望这个 url ( https://localhost:8083 ) 在我的本地机器上使用我的自签名证书。
首先,我引用了这个网址(https://gist.github.com/oslego/f13e136ffeaa6174289a),我所做的是:
$ openssl genrsa -des3 -out server.orig.key 2048
$ openssl rsa -in server.orig.key -out server.key
$ openssl req -new -key server.key -out server.csr
国家名称(2 个字母代码)[AU]:
...
通用名称:localhost.ssl
...
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
$ echo "127.0.0.1 localhost.ssl" | sudo tee -a /private/etc/hosts
然后我通过执行将 server.crt 转换为 server.pem
$ openssl x509 -in server.crt -out keystore.pem -outform PEM
$ keytool -import -trustcacerts -alias testCert -file keystore.pem -keypass testpassword -keystore keystore.jks -storepass testpassword
$ keytool -export -alias mykey -keystore keystore.jks -rfc -file truststore
$ vim keystore.password // 通过 vim 手动创建 keystore.password
但是当我访问https://localhost:8083时,它不适用于 SSL。
然后,
我还创建了另一个证书
通用名称:本地主机
$ echo "127.0.0.1 本地主机" | sudo tee -a /private/etc/hosts
但这也不起作用。如何让我的https://localhost:8083 使用我的自签名证书?
仅供参考,我使用嵌入式 Jetty,Java 通过定义 keystore.jks、truststore 和 keystore.password 文件位置的配置文件正确读取所有信息。