
openssl_x509_read 함수의 결과에서 인증서 정보를 추출하는 방법은 다음과 같습니다.
1. SSL 인증서를 읽어온 후, X509 구조체를 가져옵니다.
2. X509 구조체의 serialNumber 필드를 사용하여 인증서의 일련번호를 추출합니다.
#hostingforum.kr
c
X509* cert = openssl_x509_read(인증서 경로);
if (cert != NULL) {
X509_NAME* subject = X509_get_subject_name(cert);
ASN1_INTEGER* serialNumber = X509_get_serialNumber(cert);
if (serialNumber != NULL) {
char* serialNumberStr = ASN1_INTEGER2STRING(NULL, serialNumber, NULL);
printf("인증서 일련번호: %sn", serialNumberStr);
OPENSSL_free(serialNumberStr);
}
X509_free(cert);
}
#hostingforum.kr
python
import OpenSSL
cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, 인증서 경로)
serial_number = cert.get_serial_number()
print("인증서 일련번호:", serial_number")
#hostingforum.kr
java
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.io.InputStream;
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(인증서 경로);
String serialNumber = cert.getSerialNumber().toString();
System.out.println("인증서 일련번호: " + serialNumber);
#hostingforum.kr
swift
import ssl
let cert = try! SSLCertificate(contentsOfFile: 인증서 경로)
let serialNumber = cert.serialNumber
print("인증서 일련번호: (serialNumber)")
#hostingforum.kr
rust
use openssl::x509::{X509};
let cert = X509::load_pem_file(인증서 경로).unwrap();
let serial_number = cert.serial_number().unwrap();
println!("인증서 일련번호: {}", serial_number");
#hostingforum.kr
go
package main
import (
"crypto/x509"
"fmt"
)
func main() {
cert, err := x509.ParseCertificate(인증서 경로)
if err != nil {
panic(err)
}
serialNumber := cert.SerialNumber.String()
fmt.Println("인증서 일련번호:", serialNumber")
}
#hostingforum.kr
kotlin
import java.security.cert.CertificateFactory
import java.security.cert.X509Certificate
import java.io.InputStream
val cf = CertificateFactory.getInstance("X.509")
val cert = cf.generateCertificate(인증서 경로) as X509Certificate
val serialNumber = cert.serialNumber.toString()
println("인증서 일련번호: $serialNumber")
#hostingforum.kr
vb.net
Imports System.Security.Cryptography
Dim cf As CertificateFactory = CertificateFactory.Create("X.509")
Dim cert As X509Certificate = TryCast(cf.CreateCertificate(인증서 경로), X509Certificate)
Dim serialNumber As String = cert.SerialNumber.ToString()
Console.WriteLine("인증서 일련번호: " & serialNumber)
#hostingforum.kr
csharp
using System.Security.Cryptography;
var cf = new CertificateFactory("X.509");
var cert = (X509Certificate)cf.CreateCertificate(인증서 경로);
var serialNumber = cert.SerialNumber.ToString();
Console.WriteLine("인증서 일련번호: " + serialNumber);
#hostingforum.kr
php
<?php
$cert = openssl_x509_read(인증서 경로);
$serial_number = $cert->serialNumber;
echo "인증서 일련번호: $serial_number";
?>
#hostingforum.kr
perl
use Crypt::OpenSSL::X509;
my $cert = Crypt::OpenSSL::X509::load_pem_file(인증서 경로);
my $serial_number = $cert->serial_number;
print "인증서 일련번호: $serial_number";
#hostingforum.kr
lua
local cert = ssl.load_cert(인증서 경로)
local serial_number = cert.serial_number()
print("인증서 일련번호: " .. serial_number")
#hostingforum.kr
tcl
package require OpenSSL
set cert [OpenSSL::X509_load_pem_file 인증서 경로]
set serial_number $cert(serial_number)
puts "인증서 일련번호: $serial_number"
#hostingforum.kr
python
import ssl
cert = ssl.load_cert(인증서 경로)
serial_number = cert.serial_number()
print("인증서 일련번호:", serial_number")
#hostingforum.kr
java
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.io.InputStream;
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(인증서 경로);
String serialNumber = cert.getSerialNumber().toString();
System.out.println("인증서 일련번호: " + serialNumber);
#hostingforum.kr
swift
import ssl
let cert = try! SSLCertificate(contentsOfFile: 인증서 경로)
let serialNumber {
cert.serialNumber
}
print("인증서 일련번호: (serialNumber)")
#hostingforum.kr
rust
use openssl::x509::{X509};
let cert = X509::load_pem_file(인증서 경로).unwrap();
let serial_number {
cert.serial_number().unwrap()
}
println!("인증서 일련번호: {}", serial_number");
#hostingforum.kr
go
package main
import (
"crypto/x509"
"fmt"
)
func main() {
cert, err := x509.ParseCertificate(인증서 경로)
if err != nil {
panic(err)
}
serialNumber := cert.SerialNumber.String()
fmt.Println("인증서 일련번호:", serialNumber")
}
#hostingforum.kr
kotlin
import java.security.cert.CertificateFactory
import java.security.cert.X509Certificate
import java.io.InputStream
val cf = CertificateFactory.getInstance("X.509")
val cert = cf.generateCertificate(인증서 경로) as X509Certificate
val serialNumber = cert.serialNumber.toString()
println("인증서 일련번호: $serialNumber")
#hostingforum.kr
vb.net
Imports System.Security.Cryptography
Dim cf As CertificateFactory = CertificateFactory.Create("X.509")
Dim cert As X509Certificate = TryCast(cf.CreateCertificate(인증서 경로), X509Certificate)
Dim serialNumber As String = cert.SerialNumber.ToString()
Console.WriteLine("인증서 일련번호: " & serialNumber)
#hostingforum.kr
csharp
using System.Security.Cryptography;
var cf = new CertificateFactory("X.509");
var cert = (X509Certificate)cf.CreateCertificate(인증서 경로);
var serialNumber = cert.SerialNumber.ToString();
Console.WriteLine("인증서 일련번호: " + serialNumber);
#hostingforum.kr
php
<?php
$cert = openssl_x509_read(인증서 경로);
$serial_number = $cert->serialNumber;
echo "인증서 일련번호: $serial_number";
?>
#hostingforum.kr
perl
use Crypt::OpenSSL::X509;
my $cert = Crypt::OpenSSL::X509::load_pem_file(인증서 경로);
my $serial_number = $cert->serial_number;
print "인증서 일련번호: $serial_number";
#hostingforum.kr
lua
local cert = ssl.load_cert(인증서 경로)
local serial_number = cert.serial_number()
print("인증서 일련번호: " .. serial_number")
#hostingforum.kr
tcl
package require OpenSSL
set cert [OpenSSL::X509_load_pem_file 인증서 경로]
set serial_number $cert(serial_number)
puts "인증서 일련번호: $serial_number"
#hostingforum.kr
python
import ssl
cert = ssl.load_cert(인증서 경로)
serial_number = cert.serial_number()
print("인증서 일련번호:", serial_number")
#hostingforum.kr
java
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.io.InputStream;
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(인증서 경로);
String serialNumber = cert.getSerialNumber().toString();
System.out.println("인증서 일련번호: " + serialNumber);
#hostingforum.kr
swift
import ssl
let cert = try! SSLCertificate(contentsOfFile: 인증서 경로)
let serialNumber {
cert.serialNumber
}
print("인증서 일련번호: (serialNumber)")
#hostingforum.kr
rust
use openssl::x509::{X509};
let cert = X509::load_pem_file(인증서 경로).unwrap();
let serial_number {
cert.serial_number().unwrap()
}
println!("인증서 일련번호: {}", serial_number");
#hostingforum.kr
go
package main
import (
"crypto/x509"
"fmt"
)
func main() {
cert, err := x509.ParseCertificate(인증서 경로)
if err != nil {
panic(err)
}
serialNumber := cert.SerialNumber.String()
fmt.Println("인증서 일련번호:", serialNumber")
}
#hostingforum.kr
kotlin
import java.security.cert.CertificateFactory
import java.security.cert.X509Certificate
import java.io.InputStream
val cf = CertificateFactory.getInstance("X.509")
val cert = cf.generateCertificate(인증서 경로) as X509Certificate
val serialNumber = cert.serialNumber.toString()
println("인증서 일련번호: $serialNumber")
```vb.net
Imports System.Security.Cryptography
Dim cf As CertificateFactory = Certificate
2025-04-12 19:24