Nginx配置https

Nginx配置https首先要获得证书和key(密钥),测试用例用java自带的keytool工具生成,由于我们证书是自己生成所以只能绑定一个域名,对于我们测试足够用了。

 

1 证书一般放在ngingx里的conf目录里

打开cmd命令窗口,指定使用RSA算法生成一个颁发证书的机构:

执行命令:keytool -genkey -alias haojing -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore -storepass 123456

注意:目录最好不要用绝对格式,可能会有意想不到的bug

 

 

2 以上设置可以随意,只是测试用例写的有点针对性,以上命令敲完以后在你相应目录下会生成一个文件

haojing.keystore

 

3 我们需要的证书和密钥都在这个keystore里,接下来我们生成cer证书,还是在该目录下

执行命令:keytool -export -alias haojing -keystore C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore -storepass 123456 -rfc -file C:/JavaSoftWare/nginx-1.14.0/conf/haojing.cer

 

4 证书有了,接下里我们导出密钥,由于keytool不提供命令导出密钥,所以需要编写java类,测试类如下:

 

复制代码
public class SslKey {

    public static KeyStore getKeyStore(String keyStorePath, String password) throws Exception {

        FileInputStream is = new FileInputStream(keyStorePath);

        KeyStore ks = KeyStore.getInstance("JKS");

        ks.load(is, password.toCharArray());

        is.close();

        return ks;

}

 

    public static PrivateKey getPrivateKey() {

        try {

            BASE64Encoder encoder = new BASE64Encoder();

            KeyStore ks = getKeyStore("C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore", "123456");

            PrivateKey key = (PrivateKey) ks.getKey("haojing", "123456".toCharArray());

            String encoded = encoder.encode(key.getEncoded());

            System.out.println("-----BEGIN RSA PRIVATE KEY-----");

            System.out.println(encoded);

            System.out.println("-----END RSA PRIVATE KEY-----");

            return key;

        } catch (Exception e) {

            return null;

        }

}

 

    public static void main(String[] args) {

        getPrivateKey();

    }

}
复制代码

 

5 执行完java程序控制台生成key

复制粘贴 保存文件命名为haojing,后缀为.key

 

 

6 到这一步,已经可以将cer证书(若需要crt证书,可以直接把cer证书文件的后缀改为crt即可)配置到nginx中使用。我们这边用的是crt证书,所以改下后缀

 

7 打开nginxnginx.conf文件,默认配置都是把https注销的,修改如下

 

 #HTTPS server

    server {

        listen       443 ssl;

        server_name  localhost;

 

ssl_certificate      C:/JavaSoftWare/nginx-1.14.0/conf/haojing.crt;

ssl_certificate_key  C:/JavaSoftWare/nginx-1.14.0/conf/haojing.key;

 

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

 

        ssl_ciphers  HIGH:!aNULL:!MD5;

        ssl_prefer_server_ciphers  on;

 

         location / {

             root   html;

             index  index.html index.htm;

         }

}

 

8 重启nginx,访问 hppts://localhost

 

posted on   胡子就不刮  阅读(427)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示