
macOS Sequoia の .NET で HTTPS 開発者証明書エラーの回避策
macOS 15 Sequoia でセキュリティ API が変わり、dotnet CLI から HTTPS 開発者証明書を作って信頼させることができなくなりました。
dotnet dev-certs https を実行すると、次のメッセージが出ます。
There was an error creating the HTTPS developer certificate.
詳細フラグ(-v)を付けると、もっと詳しいエラーが出ます。
An error has occurred generating the certificate: Interop+AppleCrypto+AppleCommonCryptoCryptographicException: The specified item is no longer valid. It may have been deleted from the keychain.
影響
macOS Sequoia を使っている .NET 開発者は、HTTPS 開発証明書を作ることも信頼させることもできません。証明書がなければ、HTTPS を使う .NET アプリケーションの開発もデバッグも止まってしまいます。
回避策
10 月にリリース予定の修正がありますが、それを待たずに使える回避策があります。見つけてくれた GitHub の pvasek さんと kalebzettl さんに感謝します。
-
念のため、今ある証明書を削除します。ターミナルを開いて
dotnet dev-certs https --cleanを実行してください。 -
.NET SDK パッケージ表 から "main" リリースの
tar.gzファイルをダウンロードします。下のリンクから直接でもかまいません。 -
ダウンロードしたファイルを解凍します。
-
解凍したフォルダから検疫属性を削除します。ターミナルで
xattr -d com.apple.quarantine -r <フォルダ名>を実行し、<フォルダ名>は解凍したフォルダの名前に置き換えてください。例:xattr -d com.apple.quarantine -r dotnet-sdk-9.0.100-rc.2.24473.22-osx-arm64 -
解凍したフォルダに移動します。
cd dotnet-sdk-9.0.100-rc.2.24473.22-osx-arm64 -
そのフォルダの中で
./dotnet dev-certs https --trustを実行し、証明書を生成して信頼させます。
dotnet の前の ./ を忘れないでください。これがないと、グローバルにインストールされたバージョンが動いてしまいます。
これで HTTPS 開発者証明書が作られ、信頼されるはずです。macOS Sequoia でも .NET の開発を続けられます。
この記事は元々 Qiita に掲載されています。