Sim, você precisa adquirir um certificado de uma autoridade de certificação confiável. Se alguém pudesse fazer um certificado, haveria inúmeros certificados alegando ser "Microsoft Corporation" e seria o céu do vírus.
Esse documento que você mencionou é o que eu usei para aprender a assinar drivers. Eu recomendo que você reserve alguns dias e corra até o início. Passei boa parte da semana passando por isso.
Tudo o que posso oferecer além disso é o seguinte arquivo em lote que eu executo do VS2010 no pós-build. Ele usa um certificado do armazenamento de certificados do computador, não um arquivo. A razão pela qual é tão complexo é usá-lo em muitas circunstâncias diferentes para muitos projetos diferentes.
Sign.bat
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Signs the project output.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Usage
::
:: Post-build event command line:
:: Call "$(ProjectDir)..\..\Sign.bat" "$(ConfigurationName)" "$(TargetPath)"
::
:: Run the post-build event:
:: When the build updates the project output
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Input Parameters
::
:: %~1 $(ConfigurationName) The file's configuration. This function will
:: use a different certificate for "Debug"
:: configurations.
:: %~2 $(TargetPath) The full path of the first file to sign.
:: %~3+ FileName The names of the remaining files to sign.
:: These files must reside in the same directory
:: as %2.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Validate the parameters.
If "%~1"=="Debug" Exit /B 0
If "%~1"=="" Goto Error
If "%~2"=="" Goto Error
Goto Valid
:Error
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Report that the syntax is incorrect.
Echo One or more parameters are missing.
Echo.
Echo %~nx0 configuration filename1 [filename2 ...]
Echo.
Echo configuration The project configuration. Usually "Debug" or "Release".
Echo filename1 The full path of the first file to sign.
Echo filename2 The names of addition files to sign. These files must
Echo reside in the same folder as "filename1".
Echo.
Exit /B 1
:Valid
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Change to the assembly's folder.
%~d2
CD %~dp2
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Prepare the list of files to sign.
Set FileList=
:CreateFileList
Set FileList=%FileList% %~snx2
Shift /2
If Not "%~2"=="" Goto CreateFileList
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Sign the assembly files.
Set Store=my
Set Certificate=type the name of your certificate here
Set TimeStampUrl=http://timestamp.verisign.com/scripts/timestamp.dll
C:\WinDDK00.16385.1\bin\x86\SignTool.exe Sign /s "%Store%" /n "%Certificate%" /t "%TimeStampUrl%" %FileList%
If %ErrorLevel%==1 Exit /B 1
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Verify the digital signature is valid.
C:\WinDDK00.16385.1\bin\x86\SignTool.exe Verify /pa %FileList%