본문 바로가기

09. PC

Port 허용 확인 방법

  •  시나리오 : 4443 포트 
    • 4443 포트가 잘 떠있는지 확인 (LISTEN) 

서버에서 Port LISTEN 확인

  •  telnet 확인 
    • 접속하고자 하는 클라이언트에서 telnet 연결 확인

telnet 연결 확인

 

  • openssl 연결 확인 
    • openssl s_client -connect localhost:4443
    • openssl s_client -connect <호스트>:<포트>
    • openssl s_client -connect example.com:443

openssl 결과 화면

 

CONNECTED(00000003)
depth=2 C = US, O = DigiCert Inc, OU = http://www.digicert.com, CN = DigiCert Global Root G2
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = http://www.digicert.com, CN = Thawte TLS RSA CA G1
verify return:1
depth=0 C = KR, ST = Seoul, L = Seocho-gu, O = "Pharmaceutical Co.,Ltd", CN = 
verify return:1
---
Certificate chain
 0 s:/C=KR/ST=Seoul/L=Seocho-gu/O=Kwangdong Pharmaceutical Co.,Ltd/CN=devngw.ekdp.com
   i:/C=US/O=DigiCert Inc/OU=http://www.digicert.com/CN=Thawte TLS RSA CA G1
 1 s:/C=US/O=DigiCert Inc/OU=http://www.digicert.com/CN=Thawte TLS RSA CA G1
   i:/C=US/O=DigiCert Inc/OU=http://www.digicert.com/CN=DigiCert Global Root G2
---
Server certificate
-----BEGIN CERTIFICATE-----

MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3

Z2RvbmcgUGhhcm1hY2V1dGljYWwgQ28uLEx0ZDEYMBYGA1UEAxMPZGV2bmd3LmVr
ZHAuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5GLTl0GVVG2c
...........
zgAABAMARzBFAiEAugQzbjXy6rkG5MMVdBnkcqf+6kIQgWSHVwTpdprmC/ICIFUx
0m93iB/vEoDn0SeSl+vQaFqnskCgjzciWUCt08H6AHYAyzj3FYl8hKFEX1vB3fvJ


-----END CERTIFICATE-----
subject=/C=KR/ST=Seoul/L=Seocho-gu/O=Kwangdong Pharmaceutical Co.,Ltd/CN=devngw.ekdp.com
issuer=/C=US/O=DigiCert Inc/OU=http://www.digicert.com/CN=Thawte TLS RSA CA G1
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3511 bytes and written 415 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 01DF45B9172B3D5DBCE9AB03A1FBBC50A13A0AB108C44D4C41BE233
    Session-ID-ctx:
    Master-Key: 81A0CA07148EEF0D93EC5CB552A2D2092ED5F1D8AE23173278128477
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 63 85 9c ff 48 6d ec f2-f6 d3 96 00 aa 7f a9 86   c...Hm..........
    0010 - 70 d2 2b 0e a4 88 51 61-0d 29 47 09 1e 2d 01 2c   p.+...Qa.)G..-.,
    0020 - a6 d4 bd dd 85 d9 5d b4-91 60 13 fb 28 55 e4 81   ......]..`..(U..
    0030 - 5b 15 6f a5 39 38 1d 8d-c9 87 56 3e 6c 93 4e 8f   [.o.98....V>l.N.
    ...
    0080 - 72 b7 17 27 14 c1 de 3a-19 b6 97 4f 93 22 73 45   r..'...:...O."sE
    0090 - e0 bf 74 e2 a2 ae 00 08-a8 c6 4a 90 8f 44 1b 91   ..t.......J..D..
    00a0 - 37 bd de 72 c4 08 46 af-09 84 54 f3 b5 c5 58 29   7..r..F...T...X)
    00b0 - 8c 6a 18 b0 03 b9 44 30-5a f3 c2 8e c7 7d d8 67   .j....D0Z....}.g

    Start Time: 1745972491
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

HTTP/1.1 400 Bad Request
Date: Wed, 30 Apr 2025 00:21:33 GMT
Server: Apache/2.4.63 (Unix) OpenSSL/1.0.2k-fips mod_jk/1.2.50
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
closed

 

 

openssl 자세한 정보 확인 :

  • -showcerts: 서버에서 제공하는 인증서 체인을 모두 표시합니다.
  • -prexit: 연결 후 즉시 종료합니다.
  • -debug: 디버그 정보를 출력하여 연결 과정을 자세히 보여줍니다.
  • -tls1_2, -tls1_3: 특정 TLS 버전을 사용하여 연결을 시도합니다. 서버가 특정 TLS 버전을 지원하는지 확인하는 데 유용합니다.
  • -cipher <암호화_방식>: 특정 암호화 방식을 사용하여 연결을 시도합니다.
openssl s_client -connect google.com:443 -tls1_2 -showcerts
테스트 결과에서는 다음과 같은 정보들을 확인할 수 있습니다.
  • Connected: 서버와의 연결 성공 여부를 나타냅니다.
  • SSL-Session: SSL/TLS 세션에 대한 정보 (프로토콜, 암호화 방식 등)를 보여줍니다.
  • Certificate chain: 서버에서 제공하는 인증서 체인 정보입니다.
  • Server certificate: 서버의 인증서 상세 정보 (발행자, 만료일 등)를 보여줍니다.