অজানা এসএসএল বার্তা, প্লেটেক্সট সংযোগ? ব্যতিক্রম


172

নেটে https সার্ভারের সাথে কথা বলার জন্য আমার কাছে একটি জাভা কমপ্লিট প্যাকেজ রয়েছে। সংকলন চালানো নিম্নলিখিত ব্যতিক্রম দেয়:

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)

আমি মনে করি ক্লায়েন্ট মেশিনের সাথে সংযোগ স্থাপনের কারণে এটি নিরাপদ নয় is দূরবর্তী https সার্ভারের সাথে সংযোগ স্থাপনের জন্য স্থানীয় মেশিন বা বন্দরগুলি কনফিগার করার কোনও উপায় আছে কি?

উত্তর:


238

আমি মনে করি ক্লায়েন্ট মেশিনের সাথে সংযোগ স্থাপনের কারণে এটি নিরাপদ নয় is

এটি এইচটিটিপিএস সার্ভারের সাথে নয়, এইচটিটিপি সার্ভারের সাথে কথা বলার কারণে। সম্ভবত আপনি এইচটিটিপিএসের জন্য সঠিক পোর্ট নম্বর ব্যবহার করেন নি।


7
আমার একই ত্রুটি রয়েছে এবং আমি যখন https এর পরিবর্তে HTTP ব্যবহার শুরু করি তখন আমি সমাধান করেছি। তবে আমি যখন লিংকটি ব্রাউজারে রাখি তবে এটি কাজ করে! এবং আমার একটি নিরাপদ অনুসন্ধান করা দরকার perform আমি কীভাবে সমস্যাটি সমাধান করতে পারি তার কোনও ধারণা?
ccoutinho

9
@ আরসি আপনি যখন https- র সাথে 'লিঙ্কটি রেখেছেন' তখন আপনার জন্য ব্রাউজারটি 443 পোর্টে পরিবর্তিত হয়ে থাকতে পারে। আপনি নিজেও এটি করতে পারেন। প্রকৃতপক্ষে HttpURLConnectionএটি আপনার জন্য স্বয়ংক্রিয়ভাবে করবে, যদি আপনি কোনও পোর্ট নির্দিষ্ট না করেন।
লার্নের মারকুইস

আমি ধরে নিয়েছি যে আপনি এইচটিটিপিএস হতে আপনার সার্ভারে কোনও পোর্ট সেটআপ করতে পারেন, এটি কোনও নির্দিষ্ট বন্দর হতে হবে না?

1
@ কার্ল শেরউইন এটি আপনার পছন্দ মতো কোনও বন্দর হতে পারে, সংরক্ষণের সাপেক্ষে, তবে এটি যদি 443 না হয় তবে আপনার নিজের ইউআরএলটিতে এটি আপনার নিজের কাছাকাছি থাকতে হবে।
লার্নের মারকুইস

18
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?

আপনার একটি স্থানীয় এসএমটিপি ডোমেইন নাম থাকা উচিত যা মেল সার্ভারের সাথে যোগাযোগ করবে এবং একটি নতুন সংযোগ স্থাপন করবে পাশাপাশি আপনার নীচে আপনার প্রোগ্রামিংয়ে এসএসএল সম্পত্তি পরিবর্তন করা উচিত

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection

 props.put("mail.smtp.socketFactory.fallback", "true"); // Should be true

10
তিনি এইচটিটিপিএস বলছেন, এসএমটিপি নয়। -1
লার্নের মারকুইস

2
আমার ক্ষেত্রে এটি কাজ করেছে, ধন্যবাদ! javax.mail.MessasingException: এসএমটিপি হোস্টের সাথে সংযোগ স্থাপন করা যায়নি: mail.livemusicgo.com, পোর্ট: 25; নেস্টেড ব্যতিক্রম হ'ল: javax.net.ssl.SSLException: অচেনা এসএসএল বার্তা, প্লেটেক্সট সংযোগ?
surfealokesea

1
@ সুরফিওলোকেসিয়া প্রশ্নটি এইচটিটিপি এবং এইচটিটিপিএস সম্পর্কিত, এবং এসএমটিপি সম্পর্কে একটি উত্তর বা ব্যক্তিগত অভিজ্ঞতা প্রাসঙ্গিক নয়।
লার্নের মার্কুইস

1
হ্যাঁ তবে এটি কেবল তার জন্য নয় এটি অন্য ব্যবহারকারীদের জন্য যারা এই একই 'অবিজ্ঞাত এসএসএল বার্তা' পেয়েছেন। আপনার কাছে +1, থোবিথ
sam1370

9

প্রক্সিটির মাধ্যমে একটি পোষ্ট অনুরোধ সম্পাদন করার আগে আমি যখন ফায়ারওয়াল সংস্থায় লগ ইন করতে ভুলে গিয়েছিলাম তখন আমি একই ত্রুটি বার্তাটি পেয়েছি।


কোম্পানির ভিতরে থাকলেও আমাকে একই কাজ করতে হয়েছিল!
মনোট্রেডড

1
কীভাবে সমাধান করবেন তা সংক্ষিপ্ত করে ব্যাখ্যা করতে পারেন, আমাকেও আমার কোম্পানির ডান বামে একই সমস্যার মুখোমুখি হতে হবে
নীতেশ

3

আমি একই ত্রুটি পেয়েছি। এর কারণটি ছিল যে আমি HTTP ব্যবহার করে https পোর্টটি অ্যাক্সেস করছি I সমস্যাটি সমাধান হয়ে গেল যখন আমি https তে HTTP পরিবর্তন করেছি।


11
না, এইচটিটিপিএসের মাধ্যমে এইচটিটিপি পোর্ট অ্যাক্সেস করার সময় আপনি ত্রুটি পেয়েছিলেন। ত্রুটি বার্তা পড়ুন। আপনি একটি প্লেটেক্সট টার্গেটের সাথে সংযুক্ত করেছেন। আপনি যে পরিস্থিতিটি বর্ণনা করেছেন তাতে এসএসএলেক্সেপশন তৈরি হবে না, কারণ আপনি এসএসএল ব্যবহার করবেন না।
লার্নের মারকুইস

1

আমি জেডিফলার 11.1.1.7 আইডিইতে নির্মিত জাভা অ্যাপ্লিকেশন থেকে একই সমস্যার মুখোমুখি। আমি প্রক্সি ফর্ম প্রকল্পের বৈশিষ্ট্যগুলির ব্যবহারটি অনিচ্ছুক করে সমস্যার সমাধান করেছি।

আপনি এটি নিম্নলিখিতটিতে সন্ধান করতে পারেন: প্রকল্পের সম্পত্তি -> (বাম প্যানেল থেকে) চালান / ডিবাগ / প্রোফাইল -> ডান প্যানেলটি ফর্ম করুন - সম্পাদনা করুন -> বাম প্যানেল থেকে সরঞ্জাম সেটিং -> আনচেক (প্রক্সি ব্যবহার করুন) বিকল্পটি নির্বাচন করুন।


1

এটি উত্তর হিসাবে যুক্ত করা কারণ এটি কারওর পরে সহায়তা করতে পারে।

ত্রুটি সমাধানের জন্য আমাকে jvm কে IPv4 স্ট্যাক ব্যবহার করতে বাধ্য করতে হয়েছিল। আমার অ্যাপ্লিকেশনটি কোম্পানির নেটওয়ার্কের মধ্যে কাজ করত, তবে বাড়ি থেকে সংযোগ করার সময় এটি একই ব্যতিক্রম ঘটেছে। কোনও প্রক্সি জড়িত নেই। Jvm যুক্তি যুক্ত হয়েছে -Djava.net.preferIPv4Stack=trueএবং সমস্ত httpsঅনুরোধগুলি স্বাভাবিকভাবে আচরণ করছে।


1

আপনি যদি বসন্ত ব্যবহার করে স্থানীয় চালাচ্ছেন তবে আমি ব্যবহারের পরামর্শ দেব:

@Bean
public AmazonDynamoDB amazonDynamoDB() throws IOException {
    return AmazonDynamoDBClientBuilder.standard()
            .withCredentials(
                    new AWSStaticCredentialsProvider(
                            new BasicAWSCredentials("fake", "credencial")
                    )
            )
            .withClientConfiguration(new ClientConfigurationFactory().getConfig().withProtocol(Protocol.HTTP))
            .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("localhost:8443", "central"))
            .build();
}

এটি ইউনিট পরীক্ষা ব্যবহার করে আমার জন্য কাজ করে।

আশা করি এটি সাহায্য!


0

এটি এখন আমার জন্য কাজ করেছে, আমি নীচের মতো আমার গুগল অ্যাকাউন্টের সেটিংস পরিবর্তন করেছি:

        System.out.println("Start");
        final String username = "myemail@gmail.com";
        final String password = "************";

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "465");
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

         Session session = Session.getInstance(props,
                  new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                  });


        try {
            Transport transport=session.getTransport();
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("myemail@gmail.com"));//formBean.getString("fromEmail")
            message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("myemail@gmail.com"));
            message.setSubject("subject");//formBean.getString(
            message.setText("mailBody");
            transport.connect();
            transport.send(message, InternetAddress.parse("myemail@gmail.com"));//(message);

            System.out.println("Done");

        } catch (MessagingException e) {
            System.out.println("e="+e);
            e.printStackTrace();
            throw new RuntimeException(e);

        }

যদিও আমি একই পোস্টের এই লিঙ্কে প্রোগ্রাম চালানোর সময় এসএসএল এবং টিএসএল সক্ষম করেছি । আমি অনেক সময় ব্যয় করি তবে আমি এই লিঙ্কটি বুঝতে পেরেছি এবং তার চেয়ে বেশি পেয়েছি। এবং গুগলে 2 টি নিম্নলিখিত পদক্ষেপ এবং সেটিংস নিয়ন্ত্রণ করেছেন। :

  • ২-পদক্ষেপ যাচাইকরণ (পাসওয়ার্ড এবং ওটিপি) অক্ষম করুন

  • কম সুরক্ষিত অ্যাপ্লিকেশন অ্যাক্সেস করতে সক্ষম করা ( কম সুরক্ষিত অ্যাপ্লিকেশনগুলিকে অনুমতি দিন: চালু ))

এখন আমি উপরের প্রোগ্রামটি ব্যবহার করে মেল পাঠাতে সক্ষম হয়েছি।


3
প্রশ্নটি এইচটিটিপিএস সম্পর্কে।
লার্নের মারকুইস

0

যেমনটি ইজেপি বলেছে, এটি কোনও বার্তাটি একটি নন-https প্রোটোকলে কল করার কারণে দেখানো হয়েছে। আপনি যদি নিশ্চিত হন যে এটি এইচটিটিপিএস, আপনার বাইপাস প্রক্সি সেটিংস পরীক্ষা করে দেখুন এবং ক্ষেত্রে যদি আপনার ওয়েব সার্ভিস হোস্ট url বাইপাস প্রক্সি তালিকায় যুক্ত করুন


0

যদি সংযোগ FTPS পরীক্ষা হয়:

FTPSClient ftpClient = new FTPSClient (প্রোটোকল, মিথ্যা);

প্রোটোকল = টিএলএস, এসএসএল এবং মিথ্যা = ইজপ্লিক্ট।


0

জিমেইল ব্যবহার করার সময় আমি এই ব্যতিক্রমটির মুখোমুখি হয়েছিলাম।

Gmail ব্যবহার করার জন্য আমাকে "কম সুরক্ষিত অ্যাপ্লিকেশনগুলির অনুমতি দিন" চালু করতে হয়েছিল ।

এই জিমেইল সেটিংসটি জিমেইল অ্যাকাউন্টে লগইন করার পরে https://www.google.com/settings/security/lesssecureapps এ পাওয়া যাবে ।


0

একটি খুব গুরুত্বপূর্ণ উত্তর এখানে দিন:

আপনি কেবলমাত্র আপনার এপিআই ইউআরএল স্ট্রিং (আপনার পদ্ধতিতে) https থেকে http এ পরিবর্তন করেছেন .. এটির কারণও হতে পারে:

client.resource("http://192.168.0.100:8023/jaxrs/tester/tester");

পরিবর্তে

client.resource("https://192.168.0.100:8023/jaxrs/tester/tester");

-1

আমি একই সমস্যা পেয়েছি এবং এটি সিস্টেমের বৈশিষ্ট্যে "প্রক্সিউজার" এবং "প্রক্সিপ্যাসওয়ার্ড" সেট করে সমাধান হয়ে গেছে।

System.setProperty("http.proxyUser", PROXY_USER);
System.setProperty("http.proxyPassword", PROXY_PASSWORD);

"প্রক্সিহোস্ট" এবং "প্রক্সিপোর্ট" সহ

System.setProperty("http.proxyHost", PROXY_ADDRESS);
System.setProperty("http.proxyPort", PROXY_PORT);

আশা করি এটি কার্যকর হবে।


আপনি যদি অ্যাপাচি এইচটিটিপি ক্লায়েন্ট ব্যবহার করে থাকেন এবং কোনও অনুমোদন ব্যতিক্রম পেয়ে থাকেন তবে এটি কাজ করবে। এটি ওপি দ্বারা প্রদত্ত সমস্যা সমাধানের জন্য কাজ করবে না
লার্নের মারকুইস

-1

আমি পোর্ট 25 এবং নিম্নলিখিত প্রপ ব্যবহার করে আমার সমস্যার সমাধান করেছি

mailSender.javaMailProperties.putAll([
                "mail.smtp.auth": "true",
                "mail.smtp.starttls.enable": "false",
                "mail.smtp.ssl.enable": "false",
                "mail.smtp.socketFactory.fallback": "true",
        ]);

-1

আপনি যদি দৌড়াচ্ছেন

  • সিসকো যেকোন সংযোগ সুরক্ষিত গতিশীলতা এজেন্ট
  • সিসকো অ্যানি কানেক্ট কানেক্ট ওয়েব সিকিউরিটি এজেন্ট

পরিষেবা (গুলি) বন্ধ করার চেষ্টা করুন।

এই উত্তরটির জন্য কেন আমি নিচে ভোট পেয়েছি তা নিশ্চিত নয়। আমাদের কর্পোরেট নেটওয়ার্কে এটিই সমস্যার সমাধান।


-1

জিমেইল এসএমটিপি-র মাধ্যমে ই-মেইল প্রেরণে উট-মেল উপাদানটি ব্যবহার করতে আমি একইরকম ত্রুটি পেয়েছি।

সমাধানটি টিএলএস পোর্ট (587) থেকে এসএসএল পোর্ট (465) তে নীচে হিসাবে পরিবর্তন করা হয়েছিল:

<route id="sendMail">
  <from uri="jason:toEmail"/>
  <convertBodyTo type="java.lang.String"/>
  <setHeader headerName="Subject"><constant>Something</constant></setHeader>
  <to uri="smtps://smtp.gmail.com:465?username=myemail@gmail.com&amp;password=mypw&amp;to=someemail@gmail.com&amp;debugMode=true&amp;mail.smtp.starttls.enable=true"/>
</route>

না, সমাধানটি একটি প্লেটেক্সট পোর্টে পরিবর্তন করা হয়েছিল ।
লার্নের মারকুইস

-2

আপনি যদি জাভা 6 বা তার আগের কমান্ড লাইন থেকে জাভা প্রক্রিয়াটি চালাচ্ছেন তবে এই সুইচটি যুক্ত করে আমার জন্য উপরের সমস্যাটি সমাধান করা হয়েছে:

-Dhttps.protocols = "TLSv1"


-3

হতে পারে আপনার ডিফল্ট সার্টিফিকেটের মেয়াদ শেষ হয়ে গেছে। এডমিন কনসোলের মাধ্যমে এটি পুনর্নবীকরণ করতে যান "সুরক্ষা> এসএসএল শংসাপত্র এবং কী পরিচালনা> মূল স্টোর এবং শংসাপত্র> নোডডেফল্টকি স্টোর> ব্যক্তিগত শংসাপত্রগুলি" ডিফল্ট "উলেসটি নির্বাচন করুন এবং WAS পুনরায় চালু করার পরে" পুনর্নবীকরণ "এ ক্লিক করুন।


1
একটি মেয়াদোত্তীর্ণ শংসাপত্র rdies এই ব্যতিক্রম ঘটায় না।
লার্নের মারকুইস

-3

অন্য কারণ হতে পারে "অ্যাক্সেস অস্বীকৃত" হতে পারে, আপনি ইউআরআইতে অ্যাক্সেস করতে পারবেন না এবং অভ্যন্তরীণ নেটওয়ার্ক অ্যাক্সেসের জন্য ব্লকিং প্রতিক্রিয়া পৃষ্ঠাটি পেয়েছেন। যদি আপনি নিশ্চিত না হন যে আপনার অ্যাপ্লিকেশন জোনটির ফায়ারওয়াল নিয়ম প্রয়োজন, আপনি টার্মিনাল, কমান্ড লাইন থেকে সংযোগ করার চেষ্টা করবেন। জিএনইউ / লিনাক্স বা ইউনিক্সের জন্য, আপনি এই কমান্ডটির মতো চালানোর চেষ্টা করতে পারেন এবং ফলাফলটি ব্লকিং নিয়ম বা সত্যিকারের দূরবর্তী ঠিকানা থেকে আসছে তা দেখতে পান:echo | nc -v yazilimcity.net 443


আপনি যদি কোনও পৃষ্ঠা পেয়ে থাকেন তবে এসএসএল অংশটি নিখুঁতভাবে কাজ করছে এবং আপনি ওপি দ্বারা উদ্ধৃত ব্যতিক্রমটি পাবেন না।
লার্নের মারকুইস

আমি কোনও পৃষ্ঠার কোনও প্রকার এসএসএল অংশ পাচ্ছি না, আমি অভ্যন্তরীণ নেটওয়ার্ক এইচটিটিপি প্রতিক্রিয়া পেয়েছি যেটি প্রস্তুত করা বিশেষ পৃষ্ঠা। এই দৃশ্যের জন্য আমি এইচটিটিপিএস অনুরোধের মাধ্যমে HTTP পৃষ্ঠায় অ্যাক্সেস করছি তাই আমি এই ব্যতিক্রমটি পেয়েছি received নেটওয়ার্ক বিধি পরিবর্তনের পরে, এই ব্যতিক্রমটি স্ব-সমাধানও হয়েছে।
oguzhankinik
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.