Certificar documentos PDF no servidor

Olá, gostaria de saber se alguem ja passou por esse problema; seguinte, como um sistema web pode garantir os arquivos que emite?
Um sistema que gera documentos doc e pdf na base de dados, e que disponibiliza esses documentos para download.
O objetivo é garantir que o documento baixado seja autêntico; nas minhas pesquisas descobri que a aplicação pode assinar estes documentos com um certificado válido através de keystore; até ai tudo bem, eu posso por exemplo usar o pdfbox para assinar os documentos, mas ai vi um sistema que “certifica” documentos e também oferece o arquivo original, essas ferramentas oferecem a funcionalidade de certificar paginas, garantindo o conteúdo.
Gostaria de saber se alguém conhece o fluxo de certificação para esse tipo de funcionalidade.

Examplo:
1 - Applicação gera PDF.
2 - Applicação guarda PDF no banco.
3 - Applicação oferece download do arquivo original.
4 - Applicação oferece opção de download do arquivo certificado com hash de arquivo ou código de verificação.

Como eu poderia certificar um PDF com uma applicação JAVA por exemplo? alguém já passou por uma situação semelhante?

Att.

Opa, blz?
Meu TCC foi algo parecido, ele recebia os PDFs, assinava, armazenava no MongoDB e, quando necessário, oferecia o download dos documentos.
Um problema recorrente foi manter a integridade dos documentos assinados.
Se eu ofeceresse download de cada documento isolado, tudo fluía bem. A partir do momento que quis oferecer download de mais de um documento junto, tive o problema de corromper a assinatura óbvio).
Portanto, penso que, você pode assinar os documentos quando vai fazer o download.

Outro ponto é dispor de um certificado, para ferramentas como o Adobe Reader validarem a assinatura.

Olá darlan_machado, obrigado pela contribuição, bem eu pensei em assinar o documento e persistir no banco também, porém me parece que há um fluxo mais consistente, algumas funcionalidades de certificação geram hash de arquivo ou código de verificação para uma eventual validação de integridade.

Nos meus testes, com um certificado auto assinado, usei a classe CreateSignature para assinar um arquivo.

Quando abro esse arquivo no adobe acrobat, a ferramenta consegue identificar o certificado e tudo o mais, porém nas funcionalidades que colocam um selo de certificação, não consegui identificar um certificado ao abrir estes arquivos no adobe acrobat, o diferencial destes arquivos é que sempre possuem um código de verificação, é esse fluxo que me gera dúvidas.

É justamente para os casos com selos que você precisa definir a referência no Adobe. Aí ele passa a reconhecer quem é a unidade certificadora.
Porém, você vai precisar expor um serviço para que seja possível buscar isso na internet.

Geralmente os documentos são selados da seguinte forma:

Pagina do documento certificada pela entidade certificadora em dd/mm/yyyy hh:mm:ss
Número de série do certificado 12039i0923418209Dkjns90-8098-098-098

As vezes tem um selo gráfico também.

o que eu gostaria de saber é de onde essas informações veem, tudo bem que o horario pode ser obtido por TSA, mas esse código de série me confundi.