2017-08-14 122 views
-1

我的问题是从代码中使用System.setProperty(“https.protocols”, “TLSv1,TLSv1.1,TLSv1.2”);有多危险。以及如何避免它?有没有更好的方法?如果它与-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2有关,可以请您解释一下,因为我尝试了每个博客或讨论,但我仍然没有得到何处输入此命令。它应该在cmd中吗?来自哪里 ?我应该将它添加到一些Java bin conf文件中吗?这种事情的最佳实践是什么?它与java 1.7和协议TLSv1.2有关,谢谢。从代码设置系统属性。

+1

首先,您需要了解什么是“TLS”。一旦你知道它是如何工作的,那么你可以研究为什么你需要设置它以及什么组件/类使用它。你在这里问很多问题。考虑每个线程提问1个问题。 –

+1

您在运行代码时输入“command”,例如如果你从命令行运行,你可以做类似'java -Dhttps.protocols = TLSv1,TLSv1.1,TLSv1.2 -cp/path/to/classes org.example.MyMainClass'。如果您使用IDE,则需要在VM Arguments字段中指定该选项。究竟在哪里取决于IDE。 – Andreas

+0

@Minh Kieu Ok。感谢您的建议,我会这样做。其中一个问题是我最担心的问题,那是否会导致一些问题或问题?每次运行应用程序时,如果需要设置系统属性,似乎有点不安全?或者从代码中设置它并对其进行硬编码。 –

回答

1

The -D flag sets a system property-D标志和System.setProperty都是等效的。

何时何地设置取决于您的应用程序。如果您想将其设置为应用程序参数,那么您可以使用您的应用程序等效于java -Dsystem.property=value MyApp。如果你想以编程方式设置,那么在你的代码中的某个地方你会写System.setProperty("system.property", "value");。在那一点上,这是一个品味问题。