개발

JavaScript로 TLS 버전 확인하는 예제와 방법

농담곰이 2023. 5. 11. 19:44
반응형

JavaScript 자체는 TLS 버전을 직접 확인할 수 있는 기능이 내장되어 있지 않습니다. 하지만 웹 브라우저의 경우 XMLHttpRequest나 Fetch API를 사용하여 요청을 보낼 때 사용되는 TLS 버전을 간접적으로 확인할 수 있습니다. 이를 위해서는 서버 측에서 특정 TLS 버전에 대한 요청을 처리하도록 설정해야 합니다.

다음은 XMLHttpRequest를 사용하여 서버에 요청을 보내고 TLS 버전을 확인하는 예제입니다.

```javascript
function checkTLSVersion(url, callback) {
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) {
      if (xhr.status === 200) {
        callback(null, xhr.getResponseHeader("X-TLS-Version"));
      } else {
        callback(new Error("Request failed with status " + xhr.status));
      }
    }
  };
  xhr.open("GET", url);
  xhr.send();
}


// 서버 측에서 설정한 URL을 사용하여 TLS 버전 확인
checkTLSVersion("https://yourserver.example.com/tls-version-check", function (error, tlsVersion) {
  if (error) {
    console.error("Error checking TLS version:", error);
  } else {
    console.log("Detected TLS version:", tlsVersion);
  }
});
```

이 예제에서는 서버가 요청에 대한 응답에 `X-TLS-Version` 헤더를 포함하도록 설정되어 있다고 가정합니다. 이 헤더에는 서버가 사용한 TLS 버전이 포함되어 있어야 합니다.

서버 측에서는 각각의 TLS 버전에 대한 요청을 처리하도록 설정해야 합니다. 예를 들어 Node.js와 Express를 사용하는 경우 다음과 같이 설정할 수 있습니다.

```javascript
const express = require("express");
const app = express();

app.get("/tls-version-check", (req, res) => {
  const tlsVersion = req.socket.getProtocol();
  res.set("X-TLS-Version", tlsVersion);
  res.send("TLS version check");
});

app.listen(3000, () => console.log("Listening on port 3000..."));
```

이렇게 하면 클라이언트 측에서 TLS 버전을 확인할 수 있습니다. 하지만 이 방법은 브라우저와 서버 간의 연결에 사용된 TLS 버전만 확인할 수 있습니다. 원하는 경우 브라우저가 지원하는 모든 TLS 버전을 확인하려면 추가적인 브라우저 기능 탐지 또는 서드 파티 라이브러리를 사용해야 할 수도 있습니다.

반응형