Điều gì xảy ra khi Code Signing Certificate hết hạn?

Điều gì xảy ra khi Code Signing Certificate hết hạn?

Cập nhật lần cuối: 10/09/2026

Code Signing Certificate hết hạn ảnh hưởng như thế nào đến phần mềm đã ký, bản phát hành mới và hệ thống CI/CD? Tìm hiểu vai trò của Timestamp và cách xử lý khi certificate sắp hết hạn.

Code Signing Certificate hết hạn là gì?

Code Signing Certificate hết hạn khi thời gian hiệu lực được ghi trên certificate đã kết thúc. Sau thời điểm này, certificate không còn ở trạng thái hiệu lực để sử dụng cho việc ký các bản phát hành mới theo quy trình Code Signing thông thường.

Điều quan trọng là Code Signing Certificate hết hạn không đồng nghĩa với việc mọi phần mềm đã được ký bằng certificate đó đều lập tức mất hiệu lực.

Cần phân biệt giữa certificate và chữ ký đã được tạo trước đó:

  • Certificate hết hạn: ảnh hưởng trực tiếp đến việc sử dụng certificate cho các lần ký mới.
  • File đã được ký trước khi certificate hết hạn: chữ ký có thể tiếp tục được xác minh tùy thuộc vào trạng thái chữ ký, certificate chain, thông tin timestamp và các chính sách xác minh liên quan.

Thời điểm Code Signing Certificate hết hạn và thời điểm chữ ký được tạo là hai thông tin khác nhau. Vì vậy, không nên kết luận rằng certificate hết hạn đồng nghĩa mọi chữ ký cũ đều không còn giá trị.


Xem thêm: Code Signing Certificate dùng để làm gì?


Điều gì xảy ra khi Code Signing Certificate hết hạn?

Ảnh hưởng rõ ràng nhất của certificate hết hạn là doanh nghiệp không thể tiếp tục sử dụng certificate đó như một certificate còn hiệu lực để ký các file mới.

Ví dụ, một doanh nghiệp đang sử dụng Code Signing Certificate để ký file EXE trong quy trình phát hành phần mềm. Khi certificate hết hạn, bước signing có thể không tiếp tục thành công nếu hệ thống yêu cầu certificate còn hiệu lực.

Code Signing Certificate
        │
        ▼
Certificate còn hiệu lực
        │
        ▼
Ký file mới
        │
        ▼
Certificate hết hạn
        │
        ▼
Không còn phù hợp để ký release mới
        │
        ▼
Cần certificate mới

Do đó, certificate hết hạn có thể ảnh hưởng trực tiếp đến quy trình build và release nếu doanh nghiệp chưa chuẩn bị certificate mới.

Certificate hết hạn có làm chữ ký Code Signing cũ mất hiệu lực không?

Không nhất thiết.

Việc đánh giá một chữ ký Code Signing cũ không chỉ dựa vào trạng thái hiện tại của certificate. Hệ thống xác minh còn có thể xem xét chữ ký, certificate chain, trạng thái certificate và thông tin về thời điểm chữ ký được tạo.

Đặc biệt, nếu chữ ký có timestamp từ một Timestamp Authority (TSA), timestamp có thể cung cấp bằng chứng về thời điểm chữ ký được tạo.

Certificate còn hiệu lực
        │
        ▼
Ký phần mềm
        │
        ▼
Timestamp
        │
        ▼
Phần mềm được phát hành
        │
        ▼
Certificate hết hạn
        │
        ▼
Xác minh chữ ký cũ

Vì vậy, certificate hết hạn sau khi phần mềm đã được ký không đồng nghĩa chữ ký đó được tạo sau thời điểm certificate hết hạn.

Timestamp có vai trò gì khi Certificate hết hạn?

Timestamp là thông tin xác nhận thời điểm chữ ký được tạo, thường được cung cấp bởi một Timestamp Authority trong quá trình ký.

Ví dụ, một phần mềm được ký vào ngày 01/01/2026 khi Code Signing Certificate vẫn còn hiệu lực. Chữ ký đồng thời được timestamp tại thời điểm đó. Nếu certificate hết hạn vào ngày 31/12/2026, timestamp giúp hệ thống có thêm thông tin để xác định chữ ký đã được tạo trước thời điểm certificate hết hạn.

01/01/2026
Certificate còn hiệu lực
        │
        ▼
Ký Application.exe
        │
        ▼
Timestamp: 01/01/2026
        │
        ▼
Application.exe được phát hành
        │
        ▼
31/12/2026
Certificate hết hạn

Đây là lý do timestamp đóng vai trò quan trọng trong việc duy trì khả năng xác minh chữ ký Code Signing sau khi certificate đã hết hạn.


Xem thêm: Timestamp trong Code Signing là gì?


Điều gì xảy ra nếu file được ký nhưng không có Timestamp?

Nếu file được ký mà không có timestamp, hệ thống xác minh sẽ thiếu thông tin đáng tin cậy từ Timestamp Authority để xác định thời điểm chữ ký được tạo.

Điều này có thể làm việc đánh giá chữ ký trở nên khó khăn hơn khi Code Signing Certificate đã hết hạn.

Phần mềm
    │
    ▼
Digital Signature
    │
    ▼
Không có Timestamp
    │
    ▼
Certificate hết hạn
    │
    ▼
Xác minh chữ ký
    │
    ▼
Có thể bị ảnh hưởng bởi thời điểm
certificate không còn hiệu lực

Vì vậy, với các phần mềm được phát hành và sử dụng trong thời gian dài, timestamp nên được tích hợp vào quy trình Code Signing thay vì chỉ thực hiện ký mà không ghi nhận thời điểm ký.

Có thể dùng Code Signing Certificate đã hết hạn để ký file mới không?

Không nên sử dụng Code Signing Certificate đã hết hạn để ký các bản phát hành mới.

Khi certificate đã vượt quá thời gian hiệu lực, doanh nghiệp nên sử dụng một Code Signing Certificate mới còn hiệu lực cho quá trình signing.

Quy trình phát hành nên được thực hiện theo hướng:

Certificate sắp hết hạn
        │
        ▼
Chuẩn bị Certificate mới
        │
        ▼
Cấu hình môi trường Signing
        │
        ▼
Ký bản phát hành mới
        │
        ▼
Timestamp
        │
        ▼
Verify chữ ký
        │
        ▼
Release

Việc chuẩn bị certificate mới trước khi certificate hiện tại hết hạn giúp hạn chế nguy cơ quy trình phát hành bị gián đoạn.

Có cần ký lại phần mềm cũ khi Certificate hết hạn không?

Không nhất thiết phải ký lại toàn bộ phần mềm cũ chỉ vì Code Signing Certificate đã hết hạn.

Nếu các file đã được ký trước đó và chữ ký vẫn đáp ứng các điều kiện xác minh cần thiết, doanh nghiệp không cần tự động ký lại toàn bộ các release cũ chỉ vì certificate mới được cấp.

Tình huống Cách xử lý
Release cũ đã được ký và có Timestamp Thông thường không cần ký lại chỉ vì certificate hết hạn
Release cũ không có Timestamp Cần kiểm tra và đánh giá trạng thái chữ ký cụ thể
Release mới Sử dụng Code Signing Certificate còn hiệu lực
File đã bị thay đổi sau khi ký Cần ký lại file sau khi hoàn tất thay đổi

Việc có cần ký lại hay không nên được quyết định dựa trên trạng thái thực tế của chữ ký và yêu cầu của hệ thống phát hành, thay vì chỉ dựa vào ngày hết hạn của certificate.

Certificate mới có làm thay đổi chữ ký của phần mềm cũ không?

Không.

Code Signing Certificate mới không tự động thay đổi các file đã được ký bằng certificate cũ. Chữ ký cũ vẫn gắn với certificate được sử dụng tại thời điểm ký.

Release 1
   │
   └── Certificate A
             │
             ▼
       Digital Signature


Release 2
   │
   └── Certificate B
             │
             ▼
       Digital Signature

Do đó, trong lịch sử phát hành của một phần mềm, các phiên bản khác nhau có thể được ký bằng những Code Signing Certificate khác nhau.

Certificate hết hạn có giống Certificate bị revoke không?

Không. ExpiredRevoked là hai trạng thái khác nhau của certificate.

Trạng thái Ý nghĩa
Expired Certificate đã vượt quá thời gian hiệu lực được cấp.
Revoked Certificate bị CA thu hồi trước khi thời gian hiệu lực tự nhiên kết thúc hoặc bị thu hồi theo trạng thái của CA.

Certificate hết hạn là một sự kiện theo thời gian và không nhất thiết cho thấy certificate có vấn đề bảo mật.

Trong khi đó, revoke thường liên quan đến những trường hợp cần thu hồi certificate, chẳng hạn Private Key bị compromise hoặc certificate được cấp không chính xác.

Do đó, không nên xử lý certificate hết hạn và certificate bị revoke theo cùng một cách.


Xem thêm: Điều gì xảy ra khi Code Signing Certificate bị thu hồi?


Certificate hết hạn ảnh hưởng đến CI/CD như thế nào?

Nếu Code Signing được tích hợp vào CI/CD, certificate hết hạn có thể khiến bước signing trong pipeline thất bại và làm gián đoạn quá trình release.

CI/CD Pipeline
      │
      ▼
    Build
      │
      ▼
     Test
      │
      ▼
 Code Signing
      │
      ├── Certificate còn hiệu lực
      │          │
      │          ▼
      │       Continue
      │
      └── Certificate hết hạn
                 │
                 ▼
               Fail
                 │
                 ▼
          Release Blocked

Đây là một trong những lý do doanh nghiệp nên theo dõi thời hạn của Code Signing Certificate thay vì chờ đến khi certificate hết hạn mới xử lý.

Đối với hệ thống CI/CD có tần suất release cao, việc chủ động cảnh báo ngày hết hạn giúp đội ngũ phát triển có đủ thời gian chuẩn bị certificate mới và kiểm tra lại môi trường signing.

Cần làm gì khi Code Signing Certificate sắp hết hạn?

Doanh nghiệp nên chuẩn bị certificate mới trước khi certificate hiện tại hết hạn và kiểm tra toàn bộ quy trình signing có liên quan.

  • Kiểm tra ngày hết hạn của Code Signing Certificate hiện tại.
  • Xác định các ứng dụng, máy chủ hoặc pipeline đang sử dụng certificate.
  • Chuẩn bị và yêu cầu cấp certificate mới theo quy trình của CA.
  • Kiểm tra Private Key và môi trường lưu trữ khóa.
  • Cấu hình certificate mới trong hệ thống signing.
  • Thực hiện ký thử một file.
  • Kiểm tra chữ ký sau khi ký.
  • Đảm bảo Timestamp hoạt động bình thường.
  • Cập nhật cấu hình CI/CD nếu certificate được sử dụng trong pipeline.
  • Lưu trữ thông tin certificate cũ để phục vụ việc xác minh các bản phát hành trước đó.

Cách kiểm tra thời hạn Code Signing Certificate trên Windows

Có thể kiểm tra certificate của một file đã được ký trực tiếp trên Windows thông qua phần Properties của file.

Right Click Application.exe
        │
        ▼
Properties
        │
        ▼
Digital Signatures
        │
        ▼
Select Signature
        │
        ▼
Details
        │
        ▼
View Certificate
        │
        ▼
Validity Period

Tại đây có thể xem các thông tin như Subject, Issuer, thời gian bắt đầu hiệu lực và thời gian kết thúc hiệu lực của certificate.

Kiểm tra chữ ký bằng SignTool

SignTool có thể được sử dụng để kiểm tra chữ ký số của file và xem các thông tin liên quan đến certificate.

signtool verify /pa /v "Application.exe"

Trong trường hợp cần kiểm tra nhiều file, có thể sử dụng wildcard hoặc kết hợp SignTool với các lệnh của Windows để xử lý nhiều file trong một thư mục.

signtool verify /pa /v "*.exe"

Kết quả verify giúp xác định trạng thái chữ ký và cung cấp thêm thông tin để đánh giá certificate được sử dụng cho file.


Xem thêm: Cách kiểm tra và xác minh chữ ký Code Signing


Certificate hết hạn có ảnh hưởng đến việc phát hành phần mềm không?

Có. Nếu doanh nghiệp sử dụng certificate hết hạn để ký bản phát hành mới, quá trình Code Signing có thể không thực hiện được theo yêu cầu của hệ thống.

Đặc biệt, các quy trình tự động có thể bị dừng tại bước signing:

Source Code
    │
    ▼
Build
    │
    ▼
Test
    │
    ▼
Sign
    │
    ├── Certificate Valid
    │       │
    │       ▼
    │    Timestamp
    │       │
    │       ▼
    │    Release
    │
    └── Certificate Expired
            │
            ▼
       Signing Error

Vì vậy, thời hạn certificate cần được xem là một thành phần trong kế hoạch quản lý release, đặc biệt với các hệ thống có quy trình Code Signing tự động.

Có nên chuẩn bị Certificate mới trước khi Certificate cũ hết hạn không?

Có. Chuẩn bị certificate mới trước ngày hết hạn giúp doanh nghiệp có thời gian kiểm tra quá trình cấp certificate, cấu hình Private Key, hệ thống signing, Timestamp và CI/CD.

Một quy trình chuyển đổi certificate có thể được thực hiện theo các bước:

Certificate cũ sắp hết hạn
          │
          ▼
    Chuẩn bị Certificate mới
          │
          ▼
  Cấu hình môi trường Signing
          │
          ▼
      Test Signing
          │
          ▼
     Verify chữ ký
          │
          ▼
    Kiểm tra Timestamp
          │
          ▼
     Production Release

Thực hiện kiểm tra trước khi certificate cũ hết hạn giúp giảm nguy cơ pipeline hoặc quy trình phát hành bị gián đoạn.

Những hiểu lầm phổ biến về Code Signing Certificate hết hạn

1. Certificate hết hạn thì tất cả phần mềm đã ký đều mất hiệu lực

Không chính xác. Certificate hết hạn chủ yếu ảnh hưởng đến việc sử dụng certificate cho các hoạt động ký mới. Với phần mềm đã được ký trước đó, cần đánh giá chữ ký dựa trên thời điểm ký, timestamp và các thông tin xác minh liên quan.

2. Certificate hết hạn thì phải ký lại toàn bộ phần mềm cũ

Không nhất thiết. Các release cũ đã được ký đúng cách không tự động phải ký lại chỉ vì Code Signing Certificate được sử dụng trước đó đã hết hạn.

3. Có Certificate mới thì chữ ký cũ tự động chuyển sang Certificate mới

Không. Chữ ký cũ vẫn gắn với certificate được sử dụng tại thời điểm ký. Certificate mới được sử dụng cho các lần ký mới hoặc những trường hợp doanh nghiệp chủ động thực hiện ký lại.

4. Certificate hết hạn và Certificate bị revoke là giống nhau

Không. Expired là trạng thái certificate đã vượt quá thời gian hiệu lực, trong khi Revoked là certificate đã bị CA thu hồi. Hai trường hợp này có nguyên nhân và cách xử lý khác nhau.

5. Timestamp chỉ cần thiết khi certificate sắp hết hạn

Không. Timestamp nên được tích hợp ngay trong quy trình Code Signing để ghi nhận thời điểm chữ ký được tạo. Không nên đợi đến khi certificate sắp hết hạn mới bắt đầu quan tâm đến timestamp.

Kết luận

Code Signing Certificate hết hạn chủ yếu ảnh hưởng đến việc sử dụng certificate cho các bản phát hành mới. Khi certificate không còn hiệu lực, doanh nghiệp nên sử dụng certificate mới để tiếp tục quá trình Code Signing thay vì tiếp tục dựa vào certificate cũ.

Đối với phần mềm đã được ký trước khi certificate hết hạn, việc certificate hết hạn về sau không đồng nghĩa chữ ký cũ lập tức mất khả năng xác minh. Timestamp đóng vai trò quan trọng vì cung cấp thông tin về thời điểm chữ ký được tạo, giúp quá trình xác minh có thêm cơ sở để đánh giá chữ ký được tạo khi certificate còn hiệu lực.

Doanh nghiệp nên chủ động chuẩn bị certificate mới, kiểm tra Timestamp, verify chữ ký và cập nhật hệ thống CI/CD trước khi certificate hiện tại hết hạn. Cách này giúp duy trì quy trình phát hành phần mềm ổn định và hạn chế gián đoạn do certificate hết hạn.

Bài viết mới nhất

Timestamp Server là gì? Cách hoạt động và vai trò trong Code Signing Code Signing Certificate và SSL Certificate khác nhau như thế nào? Điều gì xảy ra khi Code Signing Certificate bị thu hồi? Điều gì xảy ra khi Code Signing Certificate hết hạn? Code Signing hoạt động như thế nào? Quy trình ký và xác minh chữ ký số

Có thể bạn quan tâm

Gọi điện
Zalo
Google Maps