Nie można zaimportować pliku klucza „blah.pfx” ​​- błąd „Plik klucza może być chroniony hasłem”


392

Właśnie zaktualizowaliśmy nasze projekty Visual Studio 2008 do Visual Studio 2010. Wszystkie nasze zespoły były silnie podpisane przy użyciu certyfikatu podpisywania kodu Verisign . Od czasu aktualizacji stale pojawia się następujący błąd:

Nie można zaimportować następującego pliku klucza: nazwa firmy.pfx. Plik klucza może być chroniony hasłem. Aby to naprawić, spróbuj ponownie zaimportować certyfikat lub ręcznie zainstaluj certyfikat w silnym dostawcy CSP o następującej nazwie kontenera kluczy: VS_KEY_3E185446540E7F7A

Dzieje się tak na niektórych komputerach programistów, a nie innych. Niektóre metody zastosowane do rozwiązania tego problemu, które działały przez pewien czas, obejmują:

  • Ponowna instalacja pliku klucza z Eksploratora Windows (kliknij prawym przyciskiem myszy plik PFX i kliknij Zainstaluj)
  • Instalacja programu Visual Studio 2010 na świeżym komputerze po raz pierwszy wyświetla monit o podanie hasła przy pierwszym otwarciu projektu, a następnie działa. Na komputerach uaktualnionych z Visual Studio 2008 ta opcja nie jest dostępna.

Próbowałem użyć narzędzia SN.EXE (Strong Name Tool), aby zarejestrować klucz w programie Strong Name CSP, jak sugeruje komunikat o błędzie, ale za każdym razem, gdy uruchamiam narzędzie z dowolnymi opcjami przy użyciu wersji dostarczonej z Visual Studio 2010, SN .EXE po prostu wyświetla listę argumentów wiersza poleceń zamiast robić cokolwiek. Dzieje się tak niezależnie od tego, jakie argumenty przedstawię.

Dlaczego tak się dzieje i jakie są wyraźne kroki, aby to naprawić? Zaraz zrezygnuję z instalacji ClickOnce i podpisywania kodu Microsoft.

Odpowiedzi:


447

Miałem również ten problem. Udało mi się rozwiązać problem, uruchamiając
sn -i <KeyFile> <ContainerName>( instaluje parę kluczy w nazwanym kontenerze ).

snjest zwykle instalowany jako część zestawu Windows SDK. Na przykład C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe. Najprawdopodobniej ta lokalizacja nie znajduje się na ścieżce wyszukiwania dla standardowego środowiska. Jednak „Wiersz polecenia programisty” zainstalowany przez Visual Studio dodaje dodatkowe informacje, które zwykle obejmują poprawną lokalizację.

Na podstawie Twojego postu, który wyglądałby

sn -i companyname.pfx VS_KEY_3E185446540E7F7A

Musi to zostać uruchomione z lokalizacji pliku PFX, jeśli masz rozwiązanie załadowane w VS 2010, możesz po prostu kliknąć prawym przyciskiem myszy plik pfx w eksploratorze rozwiązań i wybrać Otwórz wiersz polecenia, który uruchomi narzędzie monitu cmd .net 2010 w właściwy katalog.

Przed uruchomieniem tej komendy sn ponownie zainstalowałem plik pfx, klikając go prawym przyciskiem myszy i wybierając opcję instalacji, ale to nie działało. Warto zwrócić uwagę, ponieważ może to być kombinacja obu tych rozwiązań.

Mam nadzieję, że to pomoże rozwiązać problem.


5
Dzięki Brandon - tak, podobnie jak ręczna ponowna instalacja pliku klucza „w pewnym sensie” rozwiązuje problem. Problem polega na tym, że jak tylko zalogujesz się w pliku klucza, wszyscy inni użytkownicy, którzy uzyskają najnowsze informacje o tym pliku klucza, będą mieli ten błąd. Jeśli któryś z tych użytkowników zamelduje się w „poprawce”, a ja dostanę najnowszą wersję, mój komputer jest teraz ponownie uszkodzony… i tak dalej. Microsoft rozpoczął zgłoszenie problemu w tym zakresie i przypisał go zespołowi VS2010 i zespołowi VSS.
JasonD

2
Ciekawy. Nie napotkałem tego problemu podczas dodawania pliku pfx do nowego CSP. Według mojej wiedzy SN -i nie zmienia pliku pfx, więc nie powinieneś później niczego sprawdzać. Jeśli jednak i tak chcesz zmienić plik pfx, na przykład zresetować hasło, spowodowałoby to problem, ponieważ zmieniłby plik pfx. Czy twoje rozwiązanie buduje się z tego pliku pfx z innego komputera? Jeśli tak, to plik pfx jest poprawny, po prostu nie ustawiaj poprawnego CSP na twoim komputerze, który ma problemy z kompilacją.
Brandon Manchester

3
Na początku próbowałem tylko części sn -i, ale narzekałem, że hasło było niepoprawne (chociaż było prawidłowe). Usunąłem certyfikat, ponownie go zainstalowałem, a następnie sn -i ... działało. Zasadniczo potwierdzając, że dla mnie wymagane były oba kroki. Ponownie zainstaluj cert, a następnie uruchom polecenie sn.
Dodgyrabbit

1
Znalazłem zarówno w VSS, jak i TFS, że jeśli uruchomisz polecenie sn -i, to nie działa, chyba że masz wypisany plik PFX, a kiedy go wpisujesz, nie działa dla innych programistów w sieci. Będę musiał spróbować ponownie zainstalować certyfikat, a następnie uruchomić komendę sn -i. Potrzebujemy go do działania na wszystkich komputerach programistów w biurze.
JasonD

5
To również działało dla mnie, ale nigdy nie musiałem tego robić w przeszłości. VS zwykł się pojawiać i prosić o hasło do każdego klucza. Co się zmieniło?
Kevin Berridge

126

Znalazłem poprawkę, która pomaga pomyślnie budować w środowisku wielu programistów:

Zamiast zmieniać hasło (co powoduje zmianę pliku .pfx ), ponownie wybierz plik .pfx z listy rozwijanej. Następnie wywoływane jest okno dialogowe hasła. Po wprowadzeniu hasła projekt zostanie zbudowany OK. Każdy programista może to zrobić na swoim komputerze lokalnym bez modyfikowania pliku .pfx.

Nadal mam problemy z uzyskaniem podpisów zespołów na naszym komputerze z kompilacją serwera. Pojawia się tam ten sam błąd, jednak użycie metody sn.exe -i nie rozwiązuje problemu dla serwera.


5
Spędziłem trochę czasu, gdy nie udało mi się uruchomić tego na naszym serwerze kompilacji TFS, zdałem sobie sprawę, że jestem zalogowany jako ja, a nie jako konto usługi kompilacji, nic dziwnego, że nie udało się go znaleźć - doh!
Daniel Morritt

7
Powinno to zostać oznaczone jako odpowiedź, ponieważ aktualnie zaznaczona odpowiedź nie będzie działać w środowisku wielu programistów. Dobra robota.
Daniel McQuiston,

Jeśli używasz tego samego pliku .pfx do podpisywania wielu zestawów / projektów w ramach jednego rozwiązania, musisz wykonać ten krok tylko na jednym projekcie i będzie on dotyczył wszystkich z nich. Działa świetnie.
Jon Comtois

1
Mój problem polegał na tym, że serwer kompilacji działał na koncie lokalnym. Poszedłem do opcji i zmieniłem, ale nie zdawałem sobie sprawy, że zmieniłem to w niewłaściwym miejscu - co doprowadziło mnie do rozwiązywania problemów przez wiele godzin, dopóki nie sprawdziłem go ponownie i nie zauważyłem błędu!
The Muffin Man

3
Świetne dzięki. Przykro mi, że wciąż jest to obejście w 2017 roku.
Billy Jake O'Connor,

43

Miałem ten sam problem i usunięcie sklepu i czytanie nie działało. Musiałem wykonać następujące czynności.

  • Uzyskaj kopię OpenSSL . Jest dostępny dla systemu Windows . Lub skorzystaj z Linux-a, ponieważ prawie wszystkie mają.

  • Uruchom następujące polecenie, aby wyeksportować do pliku klucza:

    openssl pkcs12 -in certfile.pfx -out backupcertfile.key
    
    openssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key
    

Następnie we właściwościach projektu możesz użyć pliku PFX.


1
Dziękuję Ci!! Myślę, że to zadziałało dla mnie. Złapałem
aherrick

Chciałbym dodać opcję włączenia faktycznego certyfikatu do pliku pfx: openssl pkcs12 -eksport -out certyfikat.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt -keysig -keyex
Pete

Upewnij się, że uruchamiasz openssl jako administrator, w przeciwnym razie pojawi się błąd „nie można napisać„ losowego stanu ””. Ponadto: po zrobieniu opensl musiałem odpowiedzieć Brandonowi Manchesterowi za pomocą polecenia „sn -i ...” rzecz.
Lee Richardson


To jedyne rozwiązanie, które w końcu mnie zadziałało. Dzięki!
Ladislav

37

Mówiłem za wcześnie! Rebuild przywrócił błędy do gry ...

Znalazłem to działa - kliknij prawym przyciskiem myszy w Eksploratorze rozwiązań i wyklucz go z projektu. Kliknij opcję Pokaż wszystkie pliki , kliknij prawym przyciskiem myszy i ponownie włącz go do projektu. Teraz cofnij oczekujące zmiany ...

Z jakiegoś powodu rozwiązało to problem i było stosunkowo bezbolesne!


Odzyskanie go, nie pomogło. Nie zdawałem sobie sprawy, że usunąłem plik pfx z ustawień projektu. Myślę, że odpowiedź leży w odpowiedzi Stefana stackoverflow.com/a/14644793/1735721
DennisWelu

Ta odpowiedź jest świetna. To działało dla mnie i jest takie proste.
Ben Rubin,

Pracował dla mnie (VS2017 15.7.4). Dziękuję za miłe i szybkie rozwiązanie.
Spotkanie z uczestnikiem

Pracował dla mnie na VS2019 16.1.3. Dzięki!!
JordanTDN

35

Odkryłem, że w niektórych przypadkach powinieneś spróbować usunąć ten klucz przed jego zainstalowaniem. Wykonaj następujące czynności:

  1. sn -d VS_XXXX
  2. sn -i mykey.pfx VS_XXX

1
Naprawiłem to dla mnie! Sama instalacja zakończyła się niepowodzeniem, a obiekt już istnieje.
Andy

Też tego próbowałem i to nie pomogło. Czy coś może być nie tak z samym certyfikatem?
Tomáš Zato - Przywróć Monikę

2
Dziękujemy, usunięcie musi być wykonane jako administrator - jeśli jest uruchamiany jako zwykły użytkownik , pojawia się błąd wprowadzający błąd „Nie znaleziono kontenera o silnej nazwie”.
astrowalker

Dzięki, to praca dla mnie.
Rikin Patel

31

VSCommands 2010 (wtyczka do Visual Studio) może to naprawić automatycznie - wystarczy kliknąć błąd prawym przyciskiem myszy i wybrać polecenie Zastosuj poprawkę z menu. Możesz go pobrać z galerii Visual Studio .


1
Uważam, że dotyczy to wersji pro - nie mam tej opcji w mojej wersji lite
Adam Butler

2
Wersja, którą właśnie pobrałem (we wrześniu 2011 r.), Zawiera tę opcję.
Jim liczy

4
Nadal wymaga licencji pro.
John Baughman,

27

Po wypróbowaniu wszystkich tych rozwiązań (i wielu innych) odkryłem, że problem leży gdzie indziej. Dla osób, które przechodzą tę samą nędzę, co ja po zakupie certyfikatu, podzielę się rozwiązaniem mojego problemu.

Zachowanie

Rozumiem, że „znak” stosuje silną nazwę, a nie autentyczny kod do DLL lub EXE. Dlatego signtool będzie działał w tym przypadku, ale „znak” w Visual Studio nie będzie działał.

Powód

W przeszłości miałem doświadczenie z certyfikatami Verisign. Mają KeySpec=2w certyfikacie - który jest używany z funkcją „podpisywania” w Visual Studio. Te certyfikaty działają dobrze zarówno dla Visual Studio, jak i signtool.

Teraz kupiłem certyfikaty od Comodo, które mają niepoprawne KeySpec=1certyfikaty do podpisywania kodu. Oznacza to, że te certyfikaty działają poprawnie z signtool (autentode), ale nie z silnym nazewnictwem (lista rozwijana znaku).

Rozwiązanie

Istnieją dwa sposoby rozwiązania tego problemu:

  1. Utwórz osobny certyfikat dla swojej silnej nazwy, używając sn -k [name].snk. Podpisz zestaw za pomocą snk, a następnie użyj signtool z certyfikatem do podpisywania kodu, aby podpisać DLL / EXE podpisem autentycznym. Chociaż wydaje się to dziwne, z tego, co rozumiem, jest to poprawny sposób postępowania z certyfikatami, ponieważ silne nazwy mają inny cel niż autentyczny kod (zobacz także ten link, aby dowiedzieć się, jak to działa).
  2. Zaimportuj certyfikat jako KeySpec=2. Procedura tego jest szczegółowo opisana tutaj .

Ponieważ chcę używać wielu silnych nazw, obecnie używam opcji (1), chociaż opcja (2) również działa.


Aby mieć pewność, że to rozwiązanie nigdy się nie zgubi w przyszłości, oto procedura rozwiązania 2:

  1. Za pomocą MMC „Certyfikaty” wyeksportuj istniejący zestaw kluczy ( KeySpec=1) do pliku PFX. Uwaga: wykonaj kopię zapasową tego pliku w bezpiecznej lokalizacji i sprawdź, czy plik można zaimportować ok na innym komputerze, jeśli naprawdę chcesz go bezpiecznie odtwarzać!
  2. Usuń istniejący certyfikat ze sklepu kryptograficznego (stlll przy użyciu MMC).
  3. Otwórz monit CMD.
  4. Zaimportuj plik PFX za pomocą tego polecenia:
    1. certutil -importPFX -user <pfxfilename> AT_SIGNATURE
    2. Po wyświetleniu monitu wprowadź hasło dla pfx.

Powinieneś teraz mieć zestaw kluczy / certyfikat z KeySpec=2. W razie potrzeby możesz teraz wyeksportować to do innego pliku PFX za pomocą MMC.


Twoje # 2 rozwiązanie było jedyną rzeczą, która działała dla mnie (bez użycia dodatkowego narzędzia lub procesu wiersza poleceń) Dzięki.
Bron Davies

1
Tak, naprawdę nie rozumiem, dlaczego niektóre rozwiązania mają tak wiele głosów; to naprawdę jedyna rzecz, która działała dla mnie i jestem prawie pewien, że większość ludzi, którzy kupują certyfikat CS, powinna mieć ten sam problem. No cóż ...
atlaste

1
To jedyne rozwiązanie, które dla mnie zadziałało. Ponadto plik pfx nie może zawierać informacji o łańcuchach certyfikatów do podpisywania zestawów.
Shih-Wen Su

Dziękuję za tak szczegółową instrukcję. Każdy krok jest dokładnie opisany.
Dmitriy,

1
Twoje pierwsze rozwiązanie jest niezbędne do zrozumienia tutaj: absolutnie nie ma potrzeby stosowania silnych znaków z drogim certyfikatem chronionym hasłem! Kiedy to zrozumiesz i po prostu użyjesz pliku snk, ten problem zniknie całkowicie. Zobacz notatkę ostrzegawczą tutaj i tutaj .
Paul

11

Aby rozwiązać ten problem w Visual Studio 2012, klikam prawym przyciskiem myszy projekt, właściwości -> „podpisywanie”, a następnie odznaczam „Podpisuj manifesty ClickOnce”.


2
To idealna odpowiedź, jeśli nie ma potrzeby podpisywania. Eliminuje to konieczność podpisywania projektu.
Tom Anderson

8

Ponownie wybrałem plik klucza (pfx) w polu rozwijanym „Wybierz plik klucza o silnej nazwie”, a następnie podałem hasło w oknie podręcznym „WPISZ HASŁO”. Zapisałem mój projekt i nie udało się go odbudować.

  • Otwórz właściwości projektu.
  • Kliknij sekcję Podpisywanie.
  • Tam, gdzie jest napisane „Wybierz plik klucza silnej nazwy:”, ponownie wybierz bieżącą wartość z menu rozwijanego:

wprowadź opis zdjęcia tutaj

  • Visual Studio wyświetli teraz monit o podanie hasła. Wpisz to.

wprowadź opis zdjęcia tutaj

  • Zapisz swój projekt i przebuduj.

  • Jeśli pojawi się komunikat o błędzie: „Podjęto próbę odwołania się do tokena, który nie istnieje”, po prostu zignoruj ​​go i kontynuuj poniższe kroki

  • Kliknij przycisk „Zmień hasło”:

wprowadź opis zdjęcia tutaj

  • Wprowadź oryginalne hasło we wszystkich trzech polach i kliknij OK. Jeśli chcesz zmienić hasło (lub jeśli stare hasło nie spełnia wymagań co do złożoności), możesz to zrobić teraz.

  • Zapisz swój projekt i przebuduj.

Więcej informacji..


3
Cały ten błąd wydaje się całkowicie losowy, ale to rozwiązanie działało dla mnie. Jeśli ktokolwiek dostanie się tak daleko w dół strony, mogę tylko zasugerować wypróbowanie wszystkiego.
DeusExMachina25

6

W celu obejścia tego problemu próbowałem uruchomić program Visual Studio 2010 jako administrator i zadziałało to dla mnie.

Mam nadzieję, że to pomoże.


Z jakiegoś powodu przestał działać. Nie mogłem uwierzyć, że to faktycznie rozwiązało problem. Dziękuję Ci!!!
Gerhard Powell,

4

Jako oryginalny autor obejścia raportu o błędzie połączenia, istnieją DWIE warianty tego komunikatu (odkryłem później)

W jednym wariancie używasz sn.exe (zwykle, jeśli wykonujesz silne nazewnictwo), aby zaimportować klucz do sklepu z silnymi nazwami.

Innym wariantem, do którego używasz importu certmgr, jest podpisywanie kodów w przypadku wdrożenia typu „kliknij raz” (pamiętaj, że możesz użyć tego samego certyfikatu do obu celów).

Mam nadzieję że to pomoże.


Tak, wypróbowaliśmy również ten ze wsparciem Microsoft, i to jest sposób na importowanie podpisu kodu. Problemem wydaje się być to, że hasło certyfikatu zostaje utracone podczas bezpiecznego procesu źródła sprawdzania. Ale to nie wygląda na prawdziwy problem. Wygląda, jeśli wpiszesz szczegóły certyfikatu na maszynie Widnows 7 # 1, a następnie przeniesiesz ten sam plik na inną maszynę i zarejestrujesz go, rejestracja będzie działać, ale kompilacja się nie powiedzie. Microsoft wciąż nas szuka. Na razie musieliśmy wyłączyć podpisywanie kodu i podpisywać ręcznie podczas wydania.
JasonD

3

Nic mi nie działało, ale potem poszedłem i zajrzałem do menedżera certyfikatów (mmc.exe). Certyfikat nie został zaimportowany do sklepu osobistego, więc zaimportowałem go ręcznie, a następnie skompilowałem projekt.

Zobacz Podpisywanie manifestu ClickOnce i podpisywanie złożenia pod silną nazwą przy użyciu strony podpisywania projektanta Visual Studio Project Designer, podpisywania zespołów .


To rozwiązało problem również dla mnie po wykonaniu poprawki SN.exe -i.
CodingSamurai

2

Ponowne wybranie pliku klucza w comboboxie i wprowadzenie hasła pomaga nam to zrobić.

Ale należy to robić za każdym razem, gdy zmienia się plik klucza i wydaje się, że nie jest OK.


2

Miałem ten sam problem po przeniesieniu instalacji systemu Windows na dysk SSD . Żadne inne rozwiązanie nie działało dla mnie.

Moim rozwiązaniem było otwarcie pliku projektu w Notatniku i usunięcie wszystkich odniesień do kluczy PFX. Po zapisaniu pliku otwórz rozwiązanie w Visual Studio. Przejdź do projektu -> Właściwości -> Podpisywanie. W polu kombi „wybierz plik klucza z silną nazwą” nie powinny znajdować się żadne klucze. W polu kombi przejdź do klucza, wybierz go, a Twój projekt będzie mógł zostać zbudowany.


2

Mój problem polegał na tym, że kontroler kompilacji TFS działał jako usługa sieciowa iz jakiegoś powodu nie rozumiałem, dlaczego certyfikaty usługi Host budowania Visual Studio nie były używane. Zmieniłem tożsamość usługi Visual Studio Build na coś łatwiejszego do zarządzania, upewniłem się, że ma ona prawa na serwerze TFS i ręcznie dodałem certyfikaty za pomocą MMC.

Problem polegał również na tym, że MSBuild nie może dodać certyfikatów chronionych hasłem do sklepu.


Do którego sklepu musisz go dodać?
felickz

Zrobiłem to samo (a także umieściłem certyfikaty w tym użytkownikom Personal / Trusted Root / Trusted Pub .. nie jestem pewien, który to naprawił) i mogłem przejść do następnego błędu TFS, że miałem sprzeczne obszary robocze, więc aby to naprawić, miałem również aby usunąć i dodać nowego agenta kompilacji.
felickz,

2

Miałem podobny problem, ale po wybraniu pliku pfx w „pliku klucza silnej nazwy” ComboBox i wpisaniu hasła nadal otrzymuję podobny błąd (bez części nazwy kontenera):

Nie można zaimportować następującego pliku klucza: nazwa firmy.pfx. Plik klucza może być chroniony hasłem. Aby to naprawić, spróbuj ponownie zaimportować certyfikat lub ręcznie zainstaluj certyfikat

Ponadto panel informacji o certyfikacie „Podpisuj manifesty ClickOnce” nie został zapełniony.

Zrobiłem „Wybierz z pliku ...” na mojej pfx i to rozwiązało problem.


1

Wszystkie opisane tutaj metody nie pomogły mi. Ale kiedy usunąłem plik * .pfx z mojego projektu i ponownie dodałem go do podpisania zestawu, zbudowałem projekt bez żadnego błędu! Nie umiem wyjaśnić powodów. Ale to zadziałało dla mnie.


1

Okej, to zadziałało dla mnie. Otwórz stare rozwiązanie / projekt jako administrator w Visual Studio 2010 i otwórz nowe lub skopiowane rozwiązanie / projekt. Jako administrator usuń skopiowany plik pfk z nowego rozwiązania / projektu Visual Studio 2010 i przejdź do właściwości projektu i odznacz go.

Po otwarciu obu projektów skopiuj wklej do nowego. Przejdź do właściwości projektu i wybierz Kompiluj. Otworzyłem i zamknąłem Visual Studio, a także po usunięciu z nowego projektu zbudowałem go przed skopiowaniem go ze starego projektu i wybraniem. Błąd pojawił się na początku tego postu, kiedy skopiowałem projekt i próbowałem go skompilować.


1

W moim scenariuszu usługa kompilacji nie korzystała z tego samego konta użytkownika, z którego zaimportowałem klucz sn.exe.

Po zmianie konta na moje konto administratora wszystko działa dobrze.


Miałem ten sam problem, przeczytanie twojego komentarza zwróciło uwagę na fakt, że uaktualniłem system Windows 10 do systemu Windows 7, a teraz VS musi działać jako administrator. Więc uruchomiłem VS jako admin i nie ma problemów .. Dzięki za wskaźnik
użytkownik1063108

1

To rozwiązało mój problem: otwórz swój projekt VS

Kliknij dwukrotnie Package.appxmanifest

Przejdź do zakładki Opakowanie

kliknij wybierz certyfikat

kliknij konfiguruj certyfikat

wybierz z pliku i użyj example.pfx, że ta jedność lub cokolwiek innego utworzono


0

Rozwiązałem ten problem dla siebie, zmieniając następujący wiersz w pliku .csproj projektu Visual Studio:

To spowodowało błąd „nie można zaimportować”:

<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>

Zmiana wartości na false spowodowała, że ​​błąd zniknął.


7
Zwykle zestawy są podpisywane specjalnie, a usunięcie SignManifest spowodowałoby problemy z wdrożeniem w niektórych środowiskach. Więc to nie jest rozwiązanie problemu
Georgy Smirnov

0

Mam ten sam błąd. W moim przypadku próbowałem wszystkich powyższych, ale nie mogłem uzyskać rezultatu.

W końcu zdałem sobie sprawę, że w moim przypadku przyczyną błędu było to, że hasło certyfikatu nie zostało wprowadzone lub zostało wprowadzone nieprawidłowo. Błąd zniknął, gdy dynamicznie poprawnie wprowadziłem hasło. odnoszący sukcesy


0

Niestety, żadne z wymienionych tutaj podejść nie działało dla mnie. Muszę zarejestrować kilka plików PFX w kontenerze dokowanym i muszę przekazać hasło za pomocą wiersza polecenia.

Więc ponownie opracowałem sn.exe -i <infile> <container>polecenie w C # przy użyciu RSACryptoServiceProvider . Źródło i aplikacja znajdują się na GitHub w projekcie SnInstallPfx .

Aplikacja SnInstallPfx akceptuje klucz PFX i jego hasło. Automatycznie oblicza nazwę kontenera kluczy (VS_KEY_ *) (pożyczoną z kodu źródłowego MSBuild) i instaluje ją pod silną nazwą CSP.

Stosowanie:

SnInstallPfx.exe <pfx_infile> <pfx_password>
// or pass a container name if the default is not what you need (e.g. C++)
SnInstallPfx.exe <pfx_infile> <pfx_password> <container_name>

0

Dla kogo używa biegaczy GitLab:

  • Pamiętaj, aby uruchomić program uruchamiający z kontem, na którym możesz się zalogować: ./gitlab-runner.exe install --user ".\ENTER-YOUR-USERNAME" --password "ENTER-YOUR-PASSWORD"(najpierw musiałem się zatrzymać i odinstalować)
  • postępuj zgodnie z tym przewodnikiem, aby przyznać użytkownikowi kompilacji uprawnienia do logowania się jako usługa
  • zaloguj się za pomocą takiego użytkownika kompilacji
  • użyj polecenia sugerowanego w innych odpowiedziach: sn -i certificate.pfx VS_KEY_C***6

nazwa kontenera jest sugerowana w nieudanym wyniku zadania na GitLab (wyjście msbuild) wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.